在数组中查找匹配项并用jQuery替换它
In array find match and replace it by jQuery
这里有一个数组集:
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,就像您标记问题jquery一样,那么您可以使用$.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
是您想要的数组。
演示
如果我理解正确,你正在尝试获得联合
您使用库下划线您可以这样写
_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
=> [1, 2, 3, 101, 10]
链接:Undercore.js
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 如何用jquery替换字符串中可能变化的字符
- 如何用JavaScript或jQuery替换一堆标签
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 搜索并用jQuery替换整个HTML字符串
- 用jquery替换javascript语法
- 使用 jQuery 替换 HTML
- 使用 jquery 替换缺失的月份
- jquery替换不起作用
- Jquery 替换所有文本语法正则表达式中的变量
- 如何用jQuery替换HTML标签的一部分
- 如何使用 jQuery 替换文本中的 HREF 链接
- 用 jquery 替换图像和类
- 事件在替换为 JQuery 替换与()后未触发
- 使用 jquery 替换 href 的一部分
- 用jQuery替换Django中的图像
- jquery替换DIV数据,然后跟踪对它的点击
- jQuery替换挂起chrome
- jQuery替换为并追加
- 用jQuery替换同一结构中的不同单词