我写了一个函数,计算数组 realNumberArray 中正整数的平方,并返回一个新数组作为结果。
例如: [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2] 返回 [16,1764,36]
您将如何使用 reduce() 重新创建以下函数?最佳方法是什么?
例如: [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2] 返回 [16,1764,36]
您将如何使用 reduce() 重新创建以下函数?最佳方法是什么?
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
const squaredIntegers = arr;
let newArr=squaredIntegers.filter(val=>val%1==0 && val>0).map(val=>Math.pow(val,2))
return newArr;
};
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
map
和filter
的版本 - 这比您使用reduce
时,正在发生什么要明显得多。实际上,这是一个普遍规律 - 您可以使用reduce
来做更多或更少的任何事情,而map
和filter
则清楚地表明您正在做什么。我想理论上reduce
具有更好的性能(因为您只通过一次数组),但除非您处理大型数组并且实际上注意到性能成为问题,否则我不会担心此问题。 - Robin Zigmond