作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数组数组,日期在索引 0 处。我很想检查 love 循环遍历数组以及与另一个匹配的任何日期,应该合并值。
这是数组的样子,也是我尝试过的..
var array = [
[
Date 2019-06-11T10:00:00.000Z,
0,
0,
0,
23
],
[
Date 019-06-11T10:00:00.000Z,
0,
0,
2,
0
],
[
Date 2019-16-11T12:00:00.000Z,
0,
56,
0,
0
],
[
Date 2019-16-11T12:00:00.000Z,
3,
0,
0,
0
]
]
var result = array.filter(function(v) {
return this[v[0]] ?
!Object.assign(this[v[0]], v) :
(this[v[0]] = v)
}, []);
console.log(result);
我希望输出是这样的,但该方法似乎删除了重复项。
var array = [[
Date 2019-06-11T10:00:00.000Z,
0,
0,
2,
23
],[
Date 2019-16-11T12:00:00.000Z,
3,
56,
0,
0
]]
最佳答案
您可以使用 findIndex 检查累加器是否已经有新数组的 0 索引,如果有则合并数组:
const arr = [['2019-06-11T10:00:00.000Z', 0, 0, 0, 23], ['2019-06-11T10:00:00.000Z', 0, 0, 2, 0], ['2019-16-11T12:00:00.000Z', 0, 56, 0, 0], ['2019-16-11T12:00:00.000Z', 3, 0, 0, 0]]
const sorted = arr.reduce((acc, a) => {
const index = acc.findIndex(b => a[0] === b[0])
index > -1 ? acc[index] = acc[index].map((b, i) => i ? b + a[i]: b) : acc.push(a)
return acc
}, [])
console.log(sorted)
关于javascript - 如何将索引为 0 的重复数组合并为一个数组 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035054/
我是一名优秀的程序员,十分优秀!