从数组中的所有javascript对象添加特定属性的值

时间:2014-06-09 15:52:04

标签: javascript jquery arrays object math

我有一个javascript对象数组:

var myObjects = [{figure: 3}, {figure: 5}, {figure: 2}];

根据figure中对象的所有myObjects属性的添加,我希望代码总共可以提供10个。

我尝试/完成的内容

我可以循环使用jQuery的.each(),但我不想迭代(并使用临时的'store'变量)是最优雅的。

显然我也可以这样做:

myObjects[0] + myObjects[1]等 - 但假设有任意数量的对象。

我已经做了类似的事情以获得最低限度:

var lowest = Math.min.apply(null, myObjects.map(function (x) { return x['figure']; }));

但是想要相当于总数。

1 个答案:

答案 0 :(得分:2)

您可以使用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