为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2021-08-20 19:02:10
我想取第一个数组的第一个值并检查第二个数组中是否存在,然后将其删除。例如,我想取数字 41 并删除它,如果它存在于下面的任何 3 个数组中,如果不取数字 5,依此类推https://drive.google.com/open?id=1JcM5gO-uo_KtUWX8SBTWLV-SMM7iPyhTfor(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);  }}
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

我同意Code Maniac的回答,他的方法很聪明。Array.prototype.includes()判断当前数组是否包含指定值,如果是则返回true,否则返回false。


arr1 = [1, 2, 1, 3]

arr2 = [1, 3, 4]

function filterArr(arr1, arr2) {

    return arr1.filter(item => !arr2.includes(item))

}

console.log(filterArr(arr1, arr2));


查看完整回答
反对 回复 2021-08-20
?
BIG阳

TA贡献1859条经验 获得超6个赞

在循环时改变数组不是一个好习惯,要么使用新数组推送值,要么使用filterandincludes


let 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)


查看完整回答
反对 回复 2021-08-20
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信