在一个原数组里,去重另一个数组里的数据,如果用普通的遍历的方法,比较麻烦,所以利用 ES6 的 set()
来实现这个功能。
- 方法一
利用 set 和 set 提供的delete
方法,来实现
let arr1 = ['name', 'age', 'gender', 'size']
let arr2 = ['name', 'age']
function removeRepeat(rawArr, removeArr) {
let raw = new Set([...rawArr])
for(let i of removeArr) {
raw.delete(i)
}
return [...raw]
}
let result = removeRepeat(arr1, arr2)
console.log(result) // ['gender', 'size']
- 方法二
利用 set 和filter
来实现
let arr1 = ['name', 'age', 'gender', 'size']
let arr2 = ['name', 'age']
function removeRepeat(rawArr, removeArr) {
let raw = new Set([...rawArr])
let remove = new Set([...removeArr])
return [...raw].filter(i => !remove.has(i))
}
let result = removeRepeat(arr1, arr2)
console.log(result) // ['gender', 'size']