javascript - 如何根据特定字段从 JSON 中获取不同的记录
问题描述
我有 JSON 记录。其中名称字段有许多重复记录。根据名称,我想获得不同的记录。这是我的数据
{
"name": "ABER",
"value":72,
},
{
"name": "HDCC",
"value":72,
},
{
"name": "HDCC",
"value":72,
},
{
"name": "OCL",
"value":42,
},
{
"name": "OCL",
"value":42,
},
我正在寻找的这个输出
{
"name": "OCL",
"value":42,
},
{
"name": "ABER",
"value":72,
},
{
"name": "HDCC",
"value":72,
},
我试过了,但它只是返回name
字段而value
不是
var op= Array.from(new Set(obj.map((item: any) => item.name)))
我怎样才能做到这一点
解决方案
您可以使用 Array.reduce 来获得所需的结果,如下所示:
let a = [{
"name": "ABER",
"value":72,
},
{
"name": "HDCC",
"value":72,
},
{
"name": "HDCC",
"value":72,
},
{
"name": "OCL",
"value":42,
},
{
"name": "OCL",
"value":42,
}]
let result = Object.values(a.reduce((res, el) => {
res[el.name] = { ...el, count: res[el.name] ? res[el.name].count + 1: 0};
return res;
}, {}));
console.log(result);
推荐阅读
- python - 熊猫列到数组
- python - 使用 glob 读取 csv 文件以将数据传递到数据库非常慢
- php - 为什么 in2csv 不使用非 ascii 表标题转换我的 XLSX 文件?[CentOS x64]
- javascript - 首先打开“无数据”视图,然后打开详细信息页面,其中包含 Fiori 中的数据
- performance - python请求获取无效的url照明速度
- python-3.x - Pytest - 如何模拟或修补全局变量
- typescript - 如何从具有可选字段的现有接口创建缩小的打字稿接口?
- c++ - 使用 child_process spawn 运行时,多线程 EXE 不会产生所有线程
- php - 如何使用 CURL 访问 API?
- java - Java:切换2个方法参数(不同类型)以使用重载