Write Higher Order Arrow Functions!?

So here’s the thing: before this challenge, I never found anything about map() and filter(), so I didn’t have a clue of how to solve this. I think there should be challenges for map(), filter() and reduce() before this one.

After seeing the solution, I still don’t understand the syntax of any of the three fuctions or the arrow functions. Also, how does the const keyword not give an error when you declare it again? And how do the filter and map functions know that “num” is each value of the array? Very confused. Pls help.


const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
  "use strict";
  // change code below this line
  const squaredIntegers = arr.filter((num) => (num%1 == 0) && (num > 0)).map( (num) => Math.pow(num, 2));
  // change code above this line
  return squaredIntegers;
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/write-higher-order-arrow-functions/

1 Like

This one threw me for a loop too. I understand the value of googling things I don’t know, but I agree that I would have been better off with a section just for those three.