Javascript中的过滤数组

Javascript中的过滤数组,javascript,Javascript,假设我有以下两个数组: var arrOne = [1, 4, 7]; var arrTwo = [1, 2, 3, 4, 5]; var arrThree = []; 我想对arrTwo进行写入,如果它包含的元素也在arrOne中,请将其从arrTwo中删除,并将其插入arrTwo中。因此,查看上述阵列,之后阵列的状态应如下所示: var arrOne = [1, 4, 7]; var arrTwo = [2, 3, 5]; var arrThree = [1, 4]; 有人能告诉我正确的

假设我有以下两个数组:

var arrOne = [1, 4, 7];
var arrTwo = [1, 2, 3, 4, 5];
var arrThree = [];
我想对
arrTwo
进行写入,如果它包含的元素也在
arrOne
中,请将其从
arrTwo
中删除,并将其插入
arrTwo
中。因此,查看上述阵列,之后阵列的状态应如下所示:

var arrOne = [1, 4, 7];
var arrTwo = [2, 3, 5];
var arrThree = [1, 4];

有人能告诉我正确的方向和最好的方法吗?如果提供了代码,我将非常感谢您提供一个逐步的解释,以便我能够理解发生了什么。

一个简单的for循环,匹配indexOf和拼接匹配

var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var-arrtree=[];
对于(var i=0;i=0{
arrtree.push(arrTwo[i]);
2.拼接(i,1);
我--;
}
}

log(arrOne、arrTwo、arrtree)
一个简单的for循环,与indexOf和拼接匹配匹配

var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var-arrtree=[];
对于(var i=0;i=0{
arrtree.push(arrTwo[i]);
2.拼接(i,1);
我--;
}
}

log(arrOne、arrTwo、arrTwo)
查看库。arrOne中的所有元素也在arrTwo中,称为
..intersection()

查看库。arrOne中的所有元素也在arrTwo中被称为
。.intersection()

使用简单的while循环和方法

var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var-arrtree=[];
//获取数组的长度
var l=两个长度;
//从末尾遍历数组
而(l--){
//检查arrOne中存在的值
if(arrOne.indexOf(arrtowo[l])>-1)
//如果存在,则将其拆下并插入
//三月初
arrThree.反移位(arrThree.拼接(l,1)[0])
}

控制台日志(arrTwo,arrTwo)使用简单的while循环和方法

var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var-arrtree=[];
//获取数组的长度
var l=两个长度;
//从末尾遍历数组
而(l--){
//检查arrOne中存在的值
if(arrOne.indexOf(arrtowo[l])>-1)
//如果存在,则将其拆下并插入
//三月初
arrThree.反移位(arrThree.拼接(l,1)[0])
}

控制台日志(arrTwo,arrTwo)您好,您可以使用筛选功能筛选阵列。 试试下面的代码

    var arrOne = [1, 4, 7];
    var arrTwo = [2, 3, 5, 1];
    var arrThree = [];

    function checkValue(a) {
        return !arrOne.indexOf(a);
    }

    function checkValue2(a) {
        return arrThree.indexOf(a);
    }
    function myFunction() {
        arrThree = arrTwo.filter(checkValue);
        document.getElementById("demo").innerHTML = arrThree ;
        arrTwo = arrTwo.filter(checkValue2);
        document.getElementById("demo1").innerHTML = arrTwo;

    }

您好,您可以使用过滤器功能来过滤阵列。 试试下面的代码

    var arrOne = [1, 4, 7];
    var arrTwo = [2, 3, 5, 1];
    var arrThree = [];

    function checkValue(a) {
        return !arrOne.indexOf(a);
    }

    function checkValue2(a) {
        return arrThree.indexOf(a);
    }
    function myFunction() {
        arrThree = arrTwo.filter(checkValue);
        document.getElementById("demo").innerHTML = arrThree ;
        arrTwo = arrTwo.filter(checkValue2);
        document.getElementById("demo1").innerHTML = arrTwo;

    }
var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var arrtree=diff(arrOne,arrTwo)//通过两个数组
控制台日志(ARR3);
功能差异(一,二){
forEach(函数(e1){//遍历第一个数组
forEach(函数(e2){//遍历第二个
if(e1==e2)//检查元素是否相等
two.pop(e2);//从第二个数组中删除
});
});
返回2;//返回新数组
}
var arrOne=[1,4,7];
var arrTwo=[1,2,3,4,5];
var arrtree=diff(arrOne,arrTwo)//通过两个数组
控制台日志(ARR3);
功能差异(一,二){
forEach(函数(e1){//遍历第一个数组
forEach(函数(e2){//遍历第二个
if(e1==e2)//检查元素是否相等
two.pop(e2);//从第二个数组中删除
});
});
返回2;//返回新数组

}
由于数组已排序,您可以并行读取它们:O(n)而不是O(n2)。不要使用库来解决这样一个简单的问题,这太过分了:-)

var i=0,j=0;
VarA=[1,4,7];
VarB=[1,2,3,4,5];
var c=[];
而(ib[j])j++;
否则c.推(b.拼接(j,1)[0]);
}
console.log(“a”+toString(a));
console.log(“b”+toString(b));
console.log(“c”+toString(c));
函数到字符串(v){
返回“[”+v.join(“+”)”;

}
由于数组已排序,您可以并行读取它们:O(n)而不是O(n2)。不要使用库来解决这样一个简单的问题,这太过分了:-)

var i=0,j=0;
VarA=[1,4,7];
VarB=[1,2,3,4,5];
var c=[];
而(ib[j])j++;
否则c.推(b.拼接(j,1)[0]);
}
console.log(“a”+toString(a));
console.log(“b”+toString(b));
console.log(“c”+toString(c));
函数到字符串(v){
返回“[”+v.join(“+”)”;

}
即使是简单的
for
循环也可以使用,您的努力是什么?你可以从前面的问题中得到一个想法。甚至可以使用简单的
for
循环,您的努力是什么?你可以从前面的问题中得到一个想法。