我有一个 javascript 对象数组:
var myObjects = [{figure: 3}, {figure: 5}, {figure: 2}];
我想要的代码可以根据 myObjects
中对象的所有 figure
属性的总和给出 10。
我尝试过/做过的事情
我可以使用 jQuery 的 .each()
进行循环,但我不认为迭代(并使用临时“存储”变量)是最优雅的。
显然我也可以这样做:
myObjects[0] + myObjects[1]
等 - 但假设有任意数量的对象。
我已经做了类似的事情以获得最小值:
var lowest = Math.min.apply(null, myObjects.map(function (x) {
返回 x['图形'];
}));
但想要总计的等价物。
最佳答案
你可以使用 Array.prototype.reduce :
var data = [{figure: 3}, {figure: 5}, {figure: 2}],
sum = data.reduce(function(memo, c) { return memo + c.figure }, 0);
reduce
是 ECMAScript 5 的一部分,因此它在 IE9+ 和所有其他浏览器的最新版本中可用 - 请参阅 this compatibility table .
关于javascript - 从数组中的所有 javascript 对象添加特定属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123956/