javascript - json数据检查相同的id是否重复
问题描述
我有一个 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" }];
我尝试了 reduce,但在那里我发现修改了数据结构,所以我不确定我是否会得到我想要的输出。
解决方案
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 )
解释:
- 您创建一个我们存储 ID 的地图。
- 然后过滤数组,每次我们找到不在地图中的条目时,我们将其添加到列表中并返回 true。如果我们已经在列表中拥有它,我们返回 false 以丢弃该条目。
条件的最后一部分是使用赋值返回赋值的事实。
推荐阅读
- aurelia - Aurelia 绑定到内联对象
- php - SQLSTATE[42S22]:在我的 Laravel 脚本中找不到列
- python - 我正在尝试使用 UI 来写入和读取单独的类,但我不断收到属性错误
- php - AWS Ubuntu 16.04 PHP 7.0 无法接收文件上传错误1
- vhdl - 类型 std_logic 不是数组类型,不能被索引
- android - 仅在 4.4 设备中出现奇怪的 InflateException
- kubernetes - Accessing a service using a LoadBalancer in microk8s
- opencv - 自适应高斯阈值滤波器如何工作?
- swift - 从导入的 pod 代码中引用我的项目代码
- wordpress - 删除产品标签网站上的侧边栏