我有一个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'];
}));
但是想要相当于总数。
答案 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。