Debugging the solution

Tell us what’s happening:
I can’t find the solution at this one.
We have defined a function named squareList . You need to complete the code for the squareList function using any combination of map() , filter() , and reduce() so that it returns a new array containing only the square of only the positive integers (decimal numbers are not integers) when an array of real numbers is passed to it. An example of an array containing only real numbers is [-3, 4.8, 5, 3, -3.2] .

Note: Your function should not use any kind of for or while loops or the forEach() function.

Your code so far


const squareList = (arr) => {
// Only change code below this line
const squareList = arr => {
return arr.reduce((sqrIntegers, num) => {
  return Number.isInteger(num) && num > 0
    ? sqrIntegers.concat(num * num)
    : sqrIntegers;
}, []);
};
// Only change code above this line
};

const squaredIntegers = squareList([-3, 4.8, 5, 3, -3.2]);
console.log(squaredIntegers);

Your browser information:

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

Challenge: Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem

Link to the challenge:

Hi kenteleni,
The squareList function is already there. You defined it a second time within the existing one … No need for that. Otherwise, your code looks promising.

1 Like