我有一个对象数组,比方说 [{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/