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

回到顶部