javascript - 如何计算数组中项目的总和?

标签 javascript arrays

假设我有一个数组:

const items = [
  {
    "amount1": "100",
    "amount2": "50",
    "name": "ruud"
  },
  {
    "amount1": "40",
    "amount2": "60",
    "name": "ted"
  }
]

我想计算所有 amount1 和 amount2 Prop 的总和并得出:

[
  {
    "amount1": 140,
    "amount2": 110
  }
]

我该怎么做?

最佳答案

使用 Array.prototype.reduce()Object.entries()Array.prototype.forEach() :

const items = [{amount1: 100, amount2: 50}, {amount1: 40, amount2: 60}];

const sums = items.reduce((acc, item) => {
  Object.entries(item).forEach(([k, v]) => acc[k] = (acc[k] || 0) + v);
  return acc;
}, {});

console.log(sums);

收件人filter出非数字属性(但根据更新的问题保留引用的数字字符串):

const items = [{amount1: '100', amount2: '50', name: 'Ruud'}, {amount1: '40', amount2: '60', name: 'Ted'}];

const sums = items.reduce((acc, item) => {
  Object.entries(item)
        .filter(([_, v]) => !isNaN(v))
        .forEach(([k, v]) => acc[k] = (acc[k] || 0) + Number(v));
  return acc;
}, {});

console.log(sums);

关于javascript - 如何计算数组中项目的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409693/

相关文章:

Javascript 将字符串发送到控制台应用程序

Python 操作 json、列表和字典

javascript - 查找作为该对象的直接或间接子对象的对象数量的有效方法是什么

javascript - 子组件在 POST 请求后不重新渲染父组件

javascript - 尝试创建仅显示 3 个 div 的打印页面

javascript - 将 Three.js 背景更改为不透明度 0.5

c - 越界访问数组有多危险?

javascript - 如何从字符串调用和执行运算符?

java - 从数组中打印特定值

arrays - 如何将非标准索引的数组转换为json?