如何将reduce每轮迭代的结果存入数组并输出完整数组
问题原因
- reduce回调里只打印了中间乘积结果,没有存入结果数组,最终reduce返回的是最终累乘值(81),而非数组
- 你定义的result数组全程没有写入操作,最后遍历空数组往已经变成数字的arr里塞值的逻辑完全无效
- 直接在reduce中打印值会逐行输出,不符合返回数组后空格拼接的输出要求
修正后代码
function modify(arr) { const result = []; // 先过滤所有偶数 const filteredArr = arr.filter(item => item % 2 !== 0); // 累计乘积同时存储中间结果 filteredArr.reduce((acc, cur) => { const product = acc * cur; result.push(product); return product; }, 1); return result; } // 输出时用空格拼接数组元素即可得到要求格式 console.log(modify([3,3,9]).join(' '));
运行验证
输入[3,3,9]时,输出为3 9 81,和期望结果完全一致。
内容的提问来源于stack exchange,提问作者Илья Калошин
相关产品推荐
相关产品推荐

