javascript - 如何对第一个值(字符串)进行分组并添加相同日期的值?

标签 javascript grouping

JavaScript - JQUERY 对值求和 如何对第一个值(日期)进行分组并添加相同日期的值?

数组:

0: (5) ["11-2019", 0, 20, 0, 0]
1: (5) ["11-2019", 41, 0, 0, 0]
2: (5) ["11-2019", 0, 0, 29, 0]
3: (5) ["11-2019", 0, 0, 0, 60]
4: (5) ["09-2019", 0, 1, 0, 0]
5: (5) ["09-2019", 0, 0, 1, 0]
6: (5) ["09-2019", 0, 0, 0, 1]
7: (5) ["05-2019", 2, 0, 0, 0]

输出:

0: (5) ["11-2019", 41, 20, 29, 60]
1: (5) ["09-2019", 0, 1, 1, 1]
2: (5) ["05-2019", 2, 0, 0, 0]

result = DataAll.reduce(function(r, a) {
     a.forEach(function(b, i) {

         r[i] = (r[i] || 0) + b;
         console.log(r[i]);
     });
     return r;
 }, []);

最佳答案

我会在结果集中找到数组并更新所有值。

var data = [["11-2019", 0, 20, 0, 0], ["11-2019", 41, 0, 0, 0], ["11-2019", 0, 0, 29, 0], ["11-2019", 0, 0, 0, 60], ["09-2019", 0, 1, 0, 0], ["09-2019", 0, 0, 1, 0], ["09-2019", 0, 0, 0, 1], ["05-2019", 2, 0, 0, 0]],
    result = data.reduce((r, a) => {
        var temp = r.find(([date]) => date === a[0])
        if (temp) {
            for (var i = 1; i < a.length; i++) temp[i] += a[i];
        } else {
            r.push([...a]);
        }
        return r;
    }, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何对第一个值(字符串)进行分组并添加相同日期的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791010/

相关文章:

javascript - 使用 Tensorflow.js 和 tf.Tensor 处理大数据的最佳方式是什么?

sql - 模糊列上的 TSQL 分组

python - 如何在 pandas 的 groupby 之后访问 MultiIndex 列?

java 流 : grouping by and add fields

javascript - 如何将参数传递给 page.evaluate?

javascript - 将 UTC 日期转换为日期时间字符串 Titanium

javascript - jquery ui Accordion 在 Knockout 可见更改上丢失绑定(bind)

javascript - 使用 AJAX 从 API 获取数据

Python Pandas - 查找具有最大聚合值的连续组

c# - 我可以使用 LINQ 将我的报告分成几组吗?