两个数组,寻找相同项,并将b数组添加至a数组
说明:两个数组,寻找相同项,并将b数组添加至a数组
let a=[{"id": 1,"name": "小米"},{"id": 2,"name": "喜哦"},{"id": 3,"name": "莉莉"}];
let b=[{"id": 1,"name": "小米"},{"id": 2,"name": "喜哦"},{"id": 1,"name": "131313"},{"id": 5,"name": "13131"}];
// 方法一
let m = new Map();
b.forEach(function (value) {
if (!m.has(value.id)) {
m.set(value.id, new Array())
}
m.get(value.id).push(value)
});
let newA = a.map(function (value) {
if (m.has(value.id)) {
value.fillte = m.get(value.id)
}
return value
});
console.log(newA);
// 方法二
let aa1 = a.map(function (value) {
let m = b.filter(function (item) {
return item.id === value.id
})
if (m.length > 0) {
value.list = m
}
return value
});
console.log(aa1);
/*
输出结果
(3) [{…}, {…}, {…}]0: fillte: Array(2)
0: {id: 1, name: '小米'}1: {id: 1, name: '131313'}length: 2[[Prototype]]: Array(0)id: 1name: "小米"[[Prototype]]: Object1: fillte: Array(1)0: {id: 2, name: '喜哦'}length: 1[[Prototype]]: Array(0)id: 2name: "喜哦"[[Prototype]]: Object2: {id: 3, name: '莉莉'}length: 3[[Prototype]]: Array(0)
*/