【发布时间】:2021-11-17 19:08:50
【问题描述】:
脚本背后的思想如下: 我通过从中删除所有偶数值来过滤原始数组。接下来,我将原始数组的部分乘积组成一个新数组:
// new first element = 1 * 3;
// second = (first (previous multiplication) * current value) = 3 * 3 (9);
// third = (previous product * current value) = 9 * 9 (81)
我得到了我想要的结果,但我的输出看起来不像一个数组:
Input:
3 3 9
Output:
3
9
81
请帮我画出以下输出:
Input:
3 3 9
Output:
3 9 81
function modify(arr) {
var result = [];
arr = arr.filter(item => !(item % 2 == 0))
.reduce(function(acc, curItem) {
console.log(acc * curItem);
return acc * curItem;
}, 1)
for (let i = 0; i < result.length; i++) {
arr.push(result[i]);
};
return result;
}
console.log( modify([3,3,9]) )
【问题讨论】:
-
result始终为空。因此,for循环的主体永远不会被执行。 -
您的脚本中拥有您需要的一切。试一试,再看看
.reduce()的工作原理以及文档中的示例。您不仅可以返回一个数字。 -
@EdwinDalorzo 这不是问题所在。这也会通过引入一个不必要的全局变量使
return result无用。
标签: javascript arrays ecmascript-6 amazon-emr reduce