gpt4 book ai didi

javascript - 在数组中找到匹配项并用 jQuery 替换它

转载 作者:行者123 更新时间:2023-11-29 15:41:36 25 4
gpt4 key购买 nike

这里有一个数组集:

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 会变成 Array = [1,2,3 ,4],[8,9,10,11,12].

有什么建议吗?

最佳答案

您必须编写无聊的循环代码。但是您可以使用

使其更易于管理
  • [].push.apply(arr1, arr2); :它将 arr2 的所有元素推送到 arr1 而无需构建新数组
  • indexOf :它在数组中查找元素。如果你想支持 IE8,正如你标记的问题 , 那么你可以使用 $.inArray

代码如下:

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 就是你想要的数组。

Demonstration

关于javascript - 在数组中找到匹配项并用 jQuery 替换它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18159500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com