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

标签 javascript jquery arrays object math

我有一个 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/

相关文章:

javascript - YouTube API search.list-> JSON数据;如何使用 “id/snippet”填充iFrame?

c# - json 和 eval 的问题

javascript - 偏移量改变时滚动到顶部

javascript - 滑动标签定位 CSS

php - 从 jQuery 代码中的 WordPress 短代码获取 URL

javascript - 如何获取从 Knex 返回的值(数组中的对象)

javascript - 每次 ember 渲染或重新渲染时触发 jquery 事件

javascript - jQuery .load() html 页面,里面有 javascript

java - 如何在Java中连接二维数组

Python 列表理解嵌套循环