两个数组对比过滤掉重复的值
arrFilter(val1, val2, key1, key2) {
const val = [] // 保存遍历时要留下的项
const res = []
for (let len = 0; len < val1.length; len++) {
const item = val1[len]
let isExist = false
for (let j = 0; j < val2.length; j++) {
const keys = val2[j][key1 || key2]
if (item[key1 || key2] == keys) {
isExist = true
break
}
}
if (!isExist) {
val.push(item)
} else {
res.push(item)
}
}
for (let i = 0, len = val.length; i < len; i++) {
for (let j = i + 1; j < len; j++) {
if (val[i][key1 || key2] == val[j][key1 || key2]) {
val.splice(j, 1)
// splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
}
}
}
return { val, res }
}