Javascript 如何根据特定字段从JSON中获取不同的记录

Javascript 如何根据特定字段从JSON中获取不同的记录,javascript,typescript,Javascript,Typescript,我有JSON记录。其中name字段有许多重复记录。基于名称,我希望获得不同的记录。 这是我的数据 { "name": "ABER", "value":72, }, { "name": "HDCC", "value":72, }, { "name": "HDCC", "value&q

我有JSON记录。其中name字段有许多重复记录。基于名称,我希望获得不同的记录。 这是我的数据

{
    "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,
},
我试过了,但它只返回
名称
字段,而不是
以及

var op= Array.from(new Set(obj.map((item: any) => item.name)))

我怎样才能做到这一点呢?我不知道这是否是最好的方法,但您应该在插入新数据之前检查数据。类似于检查文件中是否已存在名称:ABER,否则插入它

您可以使用Array.reduce获得所需结果,类似于:

a=[{
“姓名”:“ABER”,
“价值”:72,
},
{
“名称”:“HDCC”,
“价值”:72,
},
{
“名称”:“HDCC”,
“价值”:72,
},
{
“名称”:“OCL”,
“价值”:42,
},
{
“名称”:“OCL”,
“价值”:42,
}]
让result=Object.values(a.reduce((res,el)=>{
res[el.name]={…el,计数:res[el.name]?res[el.name]。计数+1:0};
返回res;
}, {}));

控制台日志(结果)使用此函数获取唯一对象。它会解决你的问题

const arr1=[{
“姓名”:“ABER”,
“价值”:72
},
{
“名称”:“HDCC”,
“价值”:72
},
{
“名称”:“HDCC”,
“价值”:72
},
{
“名称”:“OCL”,
“价值”:42
},
{
“名称”:“OCL”,
“价值”:42
}
]
getUniqueObj=(数组)=>{
var标志=[],
输出=[],
l=数组长度,
我
对于(i=0;iconsole.log(getUniqueObj(arr1))count
。希望它是清楚的。然后输出JSON将有3个字段
name
value
count
啊,是的,没问题,我将添加count字段!