const list1 = [1, 2, 2, 3, 3, 4, 5, 6, 9]
const list2 = [0, 1, 2, 2, 3, 4, 5, 6, 7, 8]
错误写法:
- list1存在两个数字3,但是list2只有一个3,但是这种写法会把list1的两个3都打印出来了
const list3 = list1.filter(item => list2.includes(item))
console.log('list3', list3);//[1, 2, 2, 3, 3, 4, 5, 6]
正确写法
const list3 = list1.filter(item => {
const index = list2.indexOf(item)
if (index !== -1) {
list2.splice(index, 1)
return item
}
})
console.log('list3', list3);//[1, 2, 2, 3, 4, 5, 6]