JavaScript reduce 在对象数组上返回对象

标签 javascript arrays reduce

我有一个对象数组,比方说 [{x:2, y:3}, {x:5, y:4}] 我调用 reduce((c , n) => c.y + n.y); 就可以了。它显然会返回 7

但是,如果数组包含单个对象,假设 [{x:2, y:4}] 相同的 reduce 调用将返回对象本身 {x:2, y:4}

这是正常行为吗?之后我是否有义务检查结果是否为对象而不是数字?

最佳答案

是的,这是 reduce 的正常行为当您没有为累加器传递初始值时(您总是应该传递)。除了具有两个对象的数组之外,您的代码无法在任何数组上按预期工作。

去吧

arr.reduce((acc, el) => acc + el.y, 0)

关于JavaScript reduce 在对象数组上返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42378202/

相关文章:

php - 如何将 JavaScript 变量传递给 PHP?

javascript - 使用 Jquery 切换菜单不起作用

Javascript _.reduce() 练习

mysql - 我可以将这些查询压缩成 less

javascript - 如何在 Angular 中正确模块化/组织单个页面/ Controller 的 Javascript?

Javascript/jQuery 搜索字符串中的字母

javascript - 比较、添加、更新、删除 mongodb 数组上的元素

c - 在外部文件中填充函数指针数组(C)

javascript - 获取已解析的 XML 并将其放入 javascript 数组中?

javascript - 使用 reduce 对对象数组中的值求和