# ES6: Higher Order Functions

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];

const squareList = (arr) => {

“use strict”;

const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );

return squaredIntegers;

};

const squaredIntegers = squareList(realNumberArray);

console.log(squaredIntegers);

I am not getting what is going in the code ? really depressed because in most of the challenges not able to write my own code. Please guide.
what is (num) inside the code ?
not able to understand the syntax of the code.
Why we use filter(), map(), reduce().

``````const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
“use strict”;
/**
* const squaredIntegerst = arr.filter().map()
* // arr will be the array we enter into squareList()
* // .filter() will take a function that returns a value and return a new array with only that value
* // .map() will take the previous array and apply a function to each value in the array
*/
const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0
).map( (num) => Math.pow(num, 2) );
// arr.filter(function(num) {
//    return num > 0 && num % parseInt(num) // num will be each value in arr
// })
// .map(function(){
//    return Math.pow(num, 2) // apply this to each value in filtered array
// })

return squaredIntegers; // returns the new array that was filtered and mapped

};