从对象数组A删除对象数组B同样值的数据
需求场景:现有对象数组A、B,需要过滤掉A数组中属性number和B数组中属性code相同的数据
思路:先使用map处理对象数组B得到单一属性数组,再使用filter筛选
代码如下
let arrA = [
{"_id":"61691bee1f276bd6e5a5fbe1","number":"8089","name":"31煤2部机头变电所8089","delete":"0","parent":"","status":"在线"},
{"_id":"62a6f25f747958201016159f","number":"8179","name":"盘区2号变电所8179","delete":"0","parent":"","status":"在线"},
{"_id":"6183c3681f276bd6e5a9cb7e","number":"8294","name":"8294","delete":"0","parent":"","status":"在线"},
{"_id":"61691bee1f276bd6e5a5fb1f","number":"8001","name":"42煤辅运460米处8001","delete":"0","parent":"42煤辅运大巷","status":"在线"},
{"_id":"61691bee1f276bd6e5a5fb26","number":"8004","name":"42煤辅运1联巷8004","delete":"0","parent":"42煤辅运大巷","status":"在线"},
{"_id":"61691bee1f276bd6e5a5fb2a","number":"8007","name":"42煤辅运2联巷8007","delete":"0","parent":"42煤辅运大巷","status":"在线"},
{"_id":"61691bee1f276bd6e5a5fb30","number":"8010","name":"42煤辅运4联巷8010","delete":"0","parent":"42煤辅运大巷","status":"在线"}
]
let arrB= [
{"code":"8089","name":"31煤2部机头变电所8089","delete":"0","parent":"","status":"在线"},
{"code":"8179","name":"盘区2号变电所8179","delete":"0","parent":"","status":"在线"},
{"code":"8294","name":"8294","delete":"0","parent":"","status":"在线"},
]
let arrC = arrA.filter((item,idx) => !(arrB.map((num,index,arr) => num.code).includes(item.number)))
console.log(arrC)
结果如图