猿问

如何按顺序检查数组1中的每个值,存在于数组2中并删除它?

我想取第一个数组的第一个值并检查第二个数组中是否存在,然后将其删除。


例如,我想取数字 41 并删除它,如果它存在于下面的任何 3 个数组中,如果不取数字 5,依此类推


https://drive.google.com/open?id=1JcM5gO-uo_KtUWX8SBTWLV-SMM7iPyhT


for(var i=0;i<array1.length;i++) {

  var num = array1[i];

  console.log('Num',num);


  for(var j=0; j<array2.length; j++) {

    var eacharr = array3[j];

    for( var p = 0; p < eacharr.length; p++){

      var number = eacharr[p];

      if ( number === num) {

        eacharr.splice(i, 1);

        p--;

      }

    }

    console.log(eacharr);

  }

}


Cats萌萌
浏览 175回答 2
2回答

梵蒂冈之花

我同意Code Maniac的回答,他的方法很聪明。Array.prototype.includes()判断当前数组是否包含指定值,如果是则返回true,否则返回false。arr1 = [1, 2, 1, 3]arr2 = [1, 3, 4]function filterArr(arr1, arr2) {&nbsp; &nbsp; return arr1.filter(item => !arr2.includes(item))}console.log(filterArr(arr1, arr2));

BIG阳

在循环时改变数组不是一个好习惯,要么使用新数组推送值,要么使用filterandincludeslet a = [1,5,9,19, 4, 8 ,172]let b = [5, 15,28, 99, 19]let final = a.filter(val=> !b.includes(val))console.log(final)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答