我想取第一个数组的第一个值并检查第二个数组中是否存在,然后将其删除。例如,我想取数字 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));
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)
添加回答
举报
0/150
提交
取消