兩個陣列對比過濾掉重複的值
阿新 • • 發佈:2022-05-27
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 } }
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 } }