【发布时间】:2019-08-09 20:28:55
【问题描述】:
我正在尝试合并具有重复标头信息的二维数组。
在下面的示例中,它将项目 three 与项目 one 和 two 合并到数组中,并将项目 five 与项目 four 合并。
示例数据
let data = [{
header: {
id: 1
},
items: [{
item: 'one'
}, {
item: 'two'
}]
}, {
header: {
id: 1
},
items: [{
item: 'three'
}]
}, {
header: {
id: 2
},
items: [{
item: 'four'
}]
}, {
header: {
id: 2
},
items: [{
item: 'five'
}]
}]
let i, j, l = data.length;
for (i = 0; i < l; i++) {
let m = data[i]['items'].length;
for (j = 0; j < m; j++) {
if (data[i]['header']['id'] === data[i + 1]['header']['id']) {
// merge records
}
}
}
我不确定如何在 if 块中进行适当的比较,因为 i + 1 最终会比 data[i]['items'].length 更长,并且在尝试合并时会看到类似的问题。
预期输出
let data = [{
header: {
id: 1
},
items: [{
item: 'one'
}, {
item: 'two'
}, {
item: 'three'
}]
}, {
header: {
id: 2
},
items: [{
item: 'four'
}, {
item: 'five'
}]
}]
在这里您可以看到预期的输出在id 上合并在一起1,2,3 和4,5。
如何根据标头 id 将所有类似的项目合并在一起?
【问题讨论】:
标签: javascript arrays merge