我有 2 个数组。
arr1=[1,8,1,3,2]
arr2=[3,8,1]
我想将元素 [8,1]
子集放入 arr3
。我如何使用 javascript 执行此操作?我使用了以下代码。但似乎没有用。
function subsetFind() {
var arr1 = [1,8,1,3,2]
var arr2 = [3,8,1]
var arr3 = [];
var arr1length = arr1.length;
var arra2length = arr2.length;
for(var i = 0; i < arr1length; ++i){
for(var j=0;j<arra2length;j++) {
if(arr1[i] != arr2[j]) {
break;
} else {
arr3.push(arr1[i]);
break;
}
}
}
alert(arr3);
}
最佳答案
试试这个解决方案 - 它检查当前值和先前值或当前值和下一个值是否相等:
function subsetFind() {
var arr1 = [1,8,1,3,2]
var arr2 = [3,8,1]
var arr3 = [];
var arr1length = arr1.length;
var arra2length = arr2.length;
var used_i = 0;
for(var i = 0; i < arr1length; ++i){
if(used_i != 0 && used_i < i-1){
break;
}
for(var j=0;j<arra2length;j++) {
if((arr1[i] == arr2[j] && arr1[i-1] == arr2[j-1]) || (arr1[i] == arr2[j] && arr1[i+1] == arr2[j+1])) {
arr3.push(arr1[i]);
used_i = i;
}
}
}
alert(arr3);
}
输出:
8,1
关于javascript - 如何使用javascript将两个数组的子集放入不同的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432995/