JavaScript删除两个数组中重复的向
Posted 奥特曼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript删除两个数组中重复的向相关的知识,希望对你有一定的参考价值。
数组1 - 数组2
方案一
<script>
const arr1 = [{ id: 1, name: 'a' }]
const arr2 = [{ id: 1, name: 'a'}, { id: 2,name: 'b' }, { id: 3, name: 'c'}]
const subArr = (arr1, arr2) => {
let res = []
arr2.forEach(item => {
//找到重复的索引
const idx = arr1.findIndex(it => {
if (item.id === it.id) {
return true
}
})
// 只要没找着(-1)就添加到数组中
if (idx === -1) {
res.push(item)
}
});
return res
}
console.log(subArr(arr1, arr2));
</script>
方案二
<script>
const arr1 = [{ id: 1, name: 'a' }]
const arr2 = [{ id: 1, name: 'a'}, { id: 2,name: 'b' }, { id: 3, name: 'c'}]
const subArr = (arr1, arr2) => {
return arr2.filter(item => {
let idx = arr1.findIndex(it => {
// 简写 if(item.id===it.id) { return true }
return (item.id === it.id)
})
// filter的方法就是返回一个数组
return idx === -1
});
}
console.log(subArr(arr1, arr2));
</script>
方案三
<script>
const arr1 = [{ id: 1, name: 'a' }]
const arr2 = [{ id: 1, name: 'a'}, { id: 2,name: 'b' }, { id: 3, name: 'c'}]
const subArr = (arr1, arr2) => {
return arr2.filter(item => {
return arr1.some(it => {
return (item.id !== it.id)
})
});
}
console.log(subArr(arr1, arr2));
// 只要不等于返回true 把得到true的对象放在数组中
// console.log(arr2.filter(item => arr1.some(it => item.id != it.id)));
以上是关于JavaScript删除两个数组中重复的向的主要内容,如果未能解决你的问题,请参考以下文章