Hi all -
I was able to resolve the exercise in Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem using filter() and map(). I decided to try using reduce (option B in my code), but I’m not sure what I’m doing wrong. Additionally, is it really necessary to use reduce? I thought reduce() takes various elements and reduces them to a single item. Thus not sure, if it’s appropriate to use it. Anyhow, the exercise indicated we could use it, but I’m not sure what i’m doing wrong. Any guidance is really appreciated.
Code using reduce()
const squareList = arr => {
var positiveNumbers = [];
var newArr = arr.reduce((squareNum, num) => {
Number.isInteger(num) && num > 0 ? squareNum = num * num: null;
}, 0);
**Full code--- using filter and map**
const squareList = arr => {
//OPTION A
var newArr = arr.filter(num => Number.isInteger(num)? num: null);
var noNegative = [];
var positiveNum = newArr.map(num => num > 0 ? noNegative.push(num) : null);
var squaredNum = noNegative.map(num => num * num);
return squaredNum;
//END OF OPTION A
//OPTION B with REDUCE
/*
const squareList = arr => {
var positiveNumbers = [];
var newArr = arr.reduce((squareNum, num) => {
Number.isInteger(num) && num > 0 ? squareNum = num * num: null;
}, 0);
console.log(newArr);
return newArr;
// Only change code above this line
};
*/
}
const squaredIntegers = squareList([4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2]);
console.log(squaredIntegers);
**Your browser information:**
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Challenge: Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem
Link to the challenge: