我有一个 json 数据,其中一个 id 有不同的 color_id。 所以从那里我只想检查相同的 id 是否重复,然后保留第一个
这是我的示例 JSON
var data= [{ "id": "1", "name": "xxx", "age": "22","color_id": "22" },
{ "id": "1", "name": "yyy", "age": "15","color_id": "1" },
{ "id": "5", "name": "zzz", "age": "59","color_id": "22" }];
我想要的输出
var data= [{ "id": "1", "name": "xxx", "age": "22","color_id": "22" },
{ "id": "5", "name": "zzz", "age": "59","color_id": "22" }];
我尝试减少但在那里我发现修改数据结构,所以我不确定我是否会得到我想要的输出。
最佳答案
var data = [{
"id": "1",
"name": "xxx",
"age": "22",
"color_id": "22"
},
{
"id": "1",
"name": "yyy",
"age": "15",
"color_id": "1"
},
{
"id": "5",
"name": "zzz",
"age": "59",
"color_id": "22"
}
];
let map = {};
let uniqueEntries = data.filter((el) => map[el.id] ? false : map[el.id] = true);
console.log(uniqueEntries )
说明:
- 您创建一个 map ,我们在其中存储 ID。
- 然后过滤数组,每次我们找到不在 map 中的条目时,我们都会将其添加到列表中并返回 true。如果列表中已经有它,我们将返回 false 以丢弃该条目。
条件的最后一部分利用了赋值返回指定值这一事实。
关于javascript - json数据检查相同的id是否重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52206094/