[英]How to merge array of arrays
我正在尝试使用 javascript 在一个数组中合并两个数组,但我没有使用concat方法获得确切的输出,任何人都可以帮助我
var v1 = [[0, 1],[1, 5],[2,5]];
var v2 = [[0,5],[1,6],[2,8]];
//output
var result=[[0,1,5],[1,5,6],[2,5,8]];
在其中之一上使用map()
。 使用相应的索引将其与其他人连接。 然后使用Set
删除重复项
var v1 = [[0, 1],[1, 5],[2,5]]; var v2 = [[0,5],[1,6],[2,8]]; const res = v1.map((x, i) => [...new Set([...x, ...v2[i]])]); console.log(res)
连接数组并过滤数组中的重复项。 这是假设 v1 和 v2 的长度相同。
var v1 = [[0, 1],[1, 5],[2,5]]; var v2 = [[0,5],[1,6],[2,8]]; let result = [] for (let i = 0 ; i < v1.length; i++) { let d = v1[i].concat(v2[i]) result.push(d.filter((a, b) => d.indexOf(a) === b)) } console.log(result) //var result=[[0,1,5],[1,5,6],[2,5,8]];
只是像这样的东西,还没有真正编译它,但这就是想法。
let length = (v1.length > v2.length) ? v1.length : v2.length;
for (let i = 0 ; i < length; i++) {
if (v2[i] && v1[i]) {
let d = v1[i].concat(v2[i])
result.push(d.filter((a, b) => d.indexOf(a) === b))
} else {
if (v1.length > v2.length) {
result.push(v1[i].filter((a, b) => v1[i].indexOf(a) === b)); //remove v1 dup
} else {
result.push(v2[i].filter((a, b) => v2[i].indexOf(a) === b)); //remove v2 dup
}
}
}
console.log(result)
我相信这更简单,更容易阅读:
let a = [[0, 1],[1, 5],[2,5]];
let b = [[0,5],[1,6],[2,8]];
b.forEach(item => a.push(item));
// Result :
console.log(JSON.stringify(a)); // a = [[0,1],[1,5],[2,5],[0,5],[1,6],[2,8]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.