gpt4 book ai didi

javascript - 如何在 Javascript 中对数组中的对象属性求和

转载 作者:行者123 更新时间:2023-11-28 11:16:24 30 4
gpt4 key购买 nike

我有一个对象数组,我正在尝试对数组中的所有 num 求和。该数组如下所示:

var arr = [{"year": 2011, "num": 0}, {"year": 2012, "num": 2}, {"year": 2013, "num": 5}];

所以总和应该是 7。

如何用 Javascript 计算总数?

我尝试过:

var sum = arr.reduce(function(a, b) {
return a + b;
});

但这会返回:

"[object Object][object Object][object Object]"

引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

最佳答案

听起来您想将值数组减少为单个值。使用reduce :

var a = [{"year": 2011, "num": 0}, {"year": 2012, "num": 2}, {"year": 2013, "num": 5}];
a.reduce(function(prev, curr) { return prev + curr.num }, 0);
7

reduce 遍历数组的每个元素并使用您传递给它的函数累加一个值。最后一个参数是 prev 的初始值。

这“仅”出现在 ECMAScript Language specification 中自 2011 年以来,所以如果您需要支持旧浏览器,您可能想尝试类似 underscore.js :

_.reduce(a, function(prev, curr) { return prev + curr.num }, 0);

如果存在这样的事情,这将回退到 native 实现。

或者,如果您想自己动手,可以使用循环:

for (var i = 0, sum = 0; i < a.length; ++i) {
sum += a[i].num;
}

关于javascript - 如何在 Javascript 中对数组中的对象属性求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503197/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com