首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reduce js - reduce到数组

Reduce js - reduce到数组
EN

Stack Overflow用户
提问于 2021-05-08 05:14:55
回答 1查看 74关注 0票数 0

你能告诉我为什么这个方法不起作用,以及如何用一个简单的“reduce”方法让它起作用吗?

代码语言:javascript
复制
let newArray = array.reduce((acc,value,index) => index%2 ? acc[0]+=value: acc[1]+=value ,[0,0]);
console.log(newArray);
Output: Nan

“array”只是一个带有数字的数组。

请不要使用一些冗长且复杂的函数来创建答案。我想让它尽可能的简单。

我知道我们可以做到:

代码语言:javascript
复制
let sum = [0,0];

array.map((value,index)=> index%2? sum[0]+=value : sum[1]+=value);
console.log(sum);

但我很好奇,为什么那不管用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-08 05:18:18

您没有从函数返回累加器(acc)。您返回的是赋值表达式acc[0] += value的结果,它只是一个数字。在下一次迭代中,您尝试将该数字编入索引。您可以使用类似以下内容来修复此问题:

代码语言:javascript
复制
let array = [1, 2, 3, 4, 5]
let newArray = array.reduce((acc,value,index) => 
    (index % 2 ? acc[0] += value: acc[1] += value, acc),[0,0])
console.log(newArray);

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67441759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档