javascript - 给定一个像 [[el1,el2],[el11,el22],[el111,el222]] 这样的数组......当第一个值相等时迭代并求和子数组的第二个值

标签 javascript

当我有这样的数组时

var test = [['11 may 2018',0],['11 may 2018',1],['12 may 2018',5],['13 may 2018',0],['14 may 2018',0],['15 may 2018',3],['15 may 2018',7],['16 may 2018',30]];

我希望它最终看起来像这样

var test2 = [['11 may 2018',1],['12 may 2018',5],['13 may 2018',0],['14 may 2018',0],['15 may 2018',10],['16 may 2018',30]]

我不知道该怎么做。

我做过类似的事情:

    var test = [['11 may 2018',0],['11 may 2018',1],['12 may 2018',5],['13 may 2018',0],['14 may 2018',0],['15 may 2018',3],['15 may 2018',7],['16 may 2018',30]];
var test2 = [['11 may 2018',1],['12 may 2018',5],['13 may 2018',0],['14 may 2018',0],['15 may 2018',10],['16 may 2018',30]]

var testLength = test.length;

for (let i = 0; i< testLength; i++){
    if(i != testLength -1){
        if(test[i][0] == test[i+1][0]){
            test[i][1] += test[i+1][1];
        }
    }

}
console.log(test)

返回结果

    [
  [ '11 may 2018', 1 ],
  [ '11 may 2018', 1 ],
  [ '12 may 2018', 5 ],
  [ '13 may 2018', 0 ],
  [ '14 may 2018', 0 ],
  [ '15 may 2018', 10 ],
  [ '15 may 2018', 7 ],
  [ '16 may 2018', 30 ]
]

我不知道如何删除重复数组的第二个实例而不弄乱索引

最佳答案

只需跟踪以日期为关键字的对象中的日期,并在迭代列表时递增该日期。最后,对象的 Object.entries 将是您想要的:

var test = [['11 may 2018',0],['11 may 2018',1],['12 may 2018',5],['13 may 2018',0],['14 may 2018',0],['15 may 2018',3],['15 may 2018',7],['16 may 2018',30]];

let counts =  test.reduce((sums, [key, count]) => {
    sums[key] = (sums[key] || 0) + count
    return sums
}, {})

console.log(Object.entries(counts))

关于javascript - 给定一个像 [[el1,el2],[el11,el22],[el111,el222]] 这样的数组......当第一个值相等时迭代并求和子数组的第二个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60803892/

相关文章:

javascript - 无法加载资源: the server responded with a status of 404 (Not Found) while loading image in img element

javascript - 怎么可能,Chrome 和 IE 中的 ajaxing 比 Mozilla 慢得多?

javascript - 通过匹配相同的类名获得 "li"相同的高度

javascript - Jquery 删除或更改 JSON 根元素

javascript - lit-translate - get() 不返回键的值

javascript - 使特定部分标记为窗口的 100% 宽度和高度

javascript - 从 JavaScript 调用 vimeo API

javascript - 像 toggle 一样替换 div html

javascript - 单选按钮在 Chrome 和 IE 中消失

javascript - 在表单提交时显示 Toast 通知