这里有一个数组:
totalarray =[
[1,2,3,4],
[8,9,10],
[15,16,17],
[8,14,20]
]
如果哪一组具有相同的数字,我需要将它组合起来。
像那样:totalarray =[
[1,2,3,4],
[8,9,10,14,20],
[15,16,17]
]
其他例子:
totalarray =[
[1,2,3,4],
[6,10,19],
[6,16,4],
[4,14,20]
]
到
totalarray =[
[1,2,3,4,6,10,14,16,19,20]
]
所以,如果任何数字在其他数组上匹配并且将它组合在一起,我需要制作它。例如:
Array = [[1,2,3,4],[8,9,10],[8,11,12]];
Array[1][0]
和Array[2][0]
匹配,因此数组将变为Array = [1,2,3,4],[8,9,10,11,12].
有什么建议吗?
答案 0 :(得分:1)
你必须编写无聊的循环代码。但是你可以用
使它更容易管理[].push.apply(arr1, arr2);
:它将arr2
的所有元素推送到arr1
而不构建新数组以下是代码:
var totalarray =[
[1,2,3,4],
[8,9,10],
[15,16,17],
[8,14,20]
];
var result = [totalarray[0]];
function prec(tai) {
for (var j=0; j<result.length; j++) {
for (var k=0; k<tai.length; k++) {
if (result[j].indexOf(tai[k])!=-1) {
return result[j];
}
}
}
return null;
}
for (var i=1; i<totalarray.length; i++) {
var arr = prec(totalarray[i]);
if (arr) [].push.apply(arr, totalarray[i]);
else result.push(totalarray[i]);
}
result
是您想要的数组。
答案 1 :(得分:0)
如果我理解正确你想要结合
您使用库 下划线 ,您可以这样写
_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
=> [1, 2, 3, 101, 10]