js 这种数据怎么根据某个值合并?
第一个数据:
[ {
"id": 59,
"guid": 205
},
{
"id": 49,
"guid": 204
},
{
"id": 60,
"guid": 204
}
]
第二个数据:
[ {
"id": 203
},
{
"id": 205
},
{
"id": 204
}
]
上面两个怎么合并成这样的:
[ {
"id": 203
},
{
"id": 205,
"_id": [59]
},
{
"id": 204,
"_id": [49,60]
}
]
回答:
const list1 = [ {
"id": 59,
"guid": 205
},
{
"id": 49,
"guid": 204
},
{
"id": 60,
"guid": 204
}
];
const list2 =[
{
"id": 203
},
{
"id": 205
},
{
"id": 204
}
];
list2.forEach((item) => {
const res = list1.filter(({guid}) => guid === item.id)
if (res) item._id = res.map(({id})=> id)
})
回答:
循环套循环呗。
提供一个简单实现:
const arr1 = [ { "id": 59, "guid": 205 },
{ "id": 49, "guid": 204 },
{ "id": 60, "guid": 204 }
]
const arr2 = [
{ "id": 203 },
{ "id": 205 },
{ "id": 204 }
]
arr1.forEach(({id, guid}) => {
const t = arr2.find(d => d.id === guid)
if(!t._id) t._id = []
t._id.push(id)
})
console.log(arr2)
// (3) [{…}, {…}, {…}]
// 0: {id: 203}
// 1: {id: 205, _id: [59]}
// 2: {id: 204, _id: [49, 60]}
// length: 3
以上是 js 这种数据怎么根据某个值合并? 的全部内容, 来源链接: utcz.com/p/933243.html