需求
有两个数组arr1,arr2
实现arr2中去除arr1相同的元素
e.g arr1=[1,2,3] arr2=[2,3,4] ===> result = [4]
知识点补充
js Array对象的filter方法
filter接收一个函数为参数,filter对数组的每一个元素遍历根据参数函数的返回值(true或false)来决定当前审查元素是否应该被返回(true则返回false不返回)
js Array对象的indexOf方法
检测某个元素在数组中首次出现的位置
交集
var arr3 = arr2.filter(function(v){
return arr1.indexOf(v)!==-1 // 利用filter方法来遍历是否有相同的元素
})
解释:1.遍历arr2
2.如果这个元素在arr1中也出现,就把这个元素加入arr3(最终结果数组)
差集
var result = arr2.concat(arr3 ).filter(function (v) {
return arr2.indexOf(v)===-1 || arr3 .indexOf(v)===-1
})