Skip to content

Instantly share code, notes, and snippets.

@FernandoBasso
Last active July 3, 2018 16:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FernandoBasso/709120ee1137aaafd706678f14ed1dfd to your computer and use it in GitHub Desktop.
Save FernandoBasso/709120ee1137aaafd706678f14ed1dfd to your computer and use it in GitHub Desktop.
ECMAScript map, filter, reduce
const p = console.log.bind(console);
///////////////////////////////////////////////////////////////////////////////
let nums = [3, 12, 21, 27, 44];
let odds = nums.filter(num => num % 2 != 0);
p(odds);
// → [ 3, 21, 27 ]
let evens = nums.filter(num => num % 2 == 0);
p(evens);
// [ 12, 44 ]
////////////////////////////////////////////////////////////////////////////////
// filter urls with a certain characteristic ///////////////////////////////////
/*
<ul>
<li><a href="https://theforce.io">Home page</a></li>
<li><a href="http://theforce.io">Home page</a></li>
<li><a href="https://theforce.io/about">About</a></li>
<li><a href="http://theforce.io/about">About</a></li>
</ul>
*/
//
// querySelectorAll returns a node list, not an array. We need an array
// so we can use `filter`. Therefore, we use this little rest parameter
// trick so `all_links` is an array.
//
const all_links = [...document.querySelectorAll('.example-links a')];
//
// Let's filter out (exclude) non-https links.
//
const https_only = all_links.filter(link => /^https:/.test(link.href));
p(https_only.length);
// → 2
p(https_only[0].href);
// → "https://theforce.io/"
p(https_only[1].href);
// → "https://theforce.io/about"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment