js 比较两个json数组,去除重复元素
有如下两个json数组: a和b;
let a =[{
"id": 1,
"name": "姓名",
"code": "name"
"value":"zs" //注意,b数组中id=1的元素没有该字段
}, {
"id": 2,
"name": "年龄",
"code": "age"
}, {
"id": 3,
"name": "地址",
"code": "addr"
}, {
"id": 4,
"name": "搜索",
"code": "as"
}]
let b= [{
"id": 1,
"name": "姓名",
"code": "name"
}]
需要比较两个数组中是否有重复的元素(数组元素的id值是唯一的,根据两个数组中元素id是否相等来判断是否重复)
,如果有则从a中删除,获得去重后的新数组;
//a和b中都具有id为1的元素,所以理想的结果是将a中id=1的元素删除掉,
//将b数据中的id取出赋给数组c
let c = b.map( i => i.id )
//如果c中包含a数组某个元素的id,说明b数组中也有改元素,移除
let d = a.filter( i => !c.inclundes(i.id))
去重后的新数组d数组结果(可以看到id=1的元素已经成功删除):
[{
"id": 2,
"name": "年龄",
"code": "age",
},
{
"id": 3,
"name": "地址",
"code": "addr"
},
{
"id": 4,
"name": "搜索",
"code": "as"
}
]