js 这种数据怎么根据某个值合并?

作者站长头像
站长
· 阅读数 17

第一个数据:

[
    {
        "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]
    }
]
回复
1个回答
avatar
test
2024-07-15
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)
})




回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容