javascript - 如何使用javascript将两个数组的子集放入不同的数组中?

标签 javascript arrays subset

我有 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/

相关文章:

javascript - 使用jquery的第n个元素

javascript - 从数组中获取特定数据并放入其他数组中

java - Java 静态数组的排序、平均和查找最小数

javascript - 在 Emacs 中使用 js2 模式正确缩进缓冲区

javascript - 将 0 放入 FOR 循环中会返回不需要的结果

javascript - 使用Jquery点击清除输入框

r - 如何通过选择列表中除一个值之外的所有元素来对 R 中的列表进行子集化?

C++ 从 char* argv[] 读取输入

r - 剖析工资数据集

r - 使用存储为字符串的名称以编程方式选择列表元素