【问题标题】:How do I sum the y-values of an 2D array based on the corresponding x-value?如何根据相应的 x 值对二维数组的 y 值求和?
【发布时间】:2020-12-10 04:21:18
【问题描述】:

我有以下数组,其中x 是日期,y 是值。我想对每个日期的值求和。

0: {x: "8/20", y: 10}
1: {x: "8/19", y: 80}
2: {x: "8/18", y: 10}
3: {x: "8/18", y: 10}
4: {x: "8/18", y: 20}
...
19: {x: "8/13", y: 10}
20: {x: "8/13", y: 50}
21: {x: "8/13", y: -10}
22: {x: "8/13", y: 30}
23: {x: "8/13", y: 40}
24: {x: "8/13", y: 10}

如何在 JavaScript 中做到这一点?

预期结果:

0: {date: "8/20", sum: 10}
1: {date: "8/19", sum: 80}
2: {date: "8/18", sum: 30}
...
6: {date: "8/13", sum: 130}

【问题讨论】:

标签: javascript arrays


【解决方案1】:

您可以将Array#reduce 与对象一起使用来对具有相同日期的元素求和。

let res = Object.values(arr.reduce((acc,{x,y})=>{
     acc[x] = acc[x] || {date: x, sum: 0};
     acc[x].sum += y;
     return acc;
}, {}));

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    相关资源
    最近更新 更多