【发布时间】:2019-06-05 11:53:29
【问题描述】:
我想合并两个对象数组,但我想跳过具有相同 ID 的对象(我只想保存具有相同 ID 的第一个对象)。
一个数组存储在本地,另一个我从 API 获取用户。
const localUsers = [
{
"id": 1,
"first_name": "Adam",
"last_name": "Bent",
"avatar": "some img url"
},
{
"id": 2,
"first_name": "New Name",
"last_name": "New Last Name",
"avatar": "some new img url"
}
];
const apiUsers = [
{
"id": 2,
"first_name": "Eve",
"last_name": "Holt",
"avatar": "some img url"
},
{
"id": 3,
"first_name": "Charles",
"last_name": "Morris",
"avatar": "some img url"
}
];
我希望得到这个。 apiUsers 中id: 2 的对象被跳过,因为他已经存在于对象的localUsers 数组中。我想对所有具有相同 ID 的对象执行此操作。
const mergedUsers = [
{
"id": 1,
"first_name": "Adam",
"last_name": "Bent",
"avatar": "some img url"
},
{
"id": 2,
"first_name": "New Name",
"last_name": "New Last Name",
"avatar": "some new img url"
},
{
"id": 3,
"first_name": "Charles",
"last_name": "Morris",
"avatar": "some img url"
}
];
【问题讨论】:
-
@YuryTarabanko 在您删除的答案中,您需要将
localUsers之后apiUsers放入Map中,以便覆盖以OP 想要的方式工作。跨度> -
@PatrickRoberts 那么顺序会有所不同 ;) id: 1 将是最后一个
-
您假设订单很重要。他们没有明确表示:P
标签: javascript arrays object ecmascript-6