You can use a Set
for all your identifiers and use it to filter out id
s that show up on the other array.
function filterById(mainArr, filterArr){
let idSet = new Set(filterArr.map(obj => obj.id));
return mainArr.filter(obj => !idSet.has(obj.id));
}
This will remove all objects in mainArr
with a specific id
that show up in filterArr
.
Example here:
let arr = [{
"first_name": "Wanda",
"id": 27,
"last_name": "Walhai"
},
{
"first_name": "Victoria",
"id": 26,
"last_name": "Viperfisch"
}
]
let filterArr = [{
"first_name": "Victoria",
"id": 26,
"last_name": "Viperfisch"
}]
function filterById(mainArr, filterArr){
let idSet = new Set(filterArr.map(obj => obj.id));
return mainArr.filter(obj => !idSet.has(obj.id));
}
console.log(filterById(arr, filterArr));
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…