Javascript 如何根据特定字段从JSON中获取不同的记录
我有JSON记录。其中name字段有许多重复记录。基于名称,我希望获得不同的记录。 这是我的数据Javascript 如何根据特定字段从JSON中获取不同的记录,javascript,typescript,Javascript,Typescript,我有JSON记录。其中name字段有许多重复记录。基于名称,我希望获得不同的记录。 这是我的数据 { "name": "ABER", "value":72, }, { "name": "HDCC", "value":72, }, { "name": "HDCC", "value&q
{
"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;i console.log(getUniqueObj(arr1))嘿!我正在寻找一种没有任何循环的单行代码,很好,很高兴它能有所帮助!:-)您好,有一个问题是,可以添加/获取使用reduce删除的所有记录的count字段。假设我们有20次OCL,那么我需要记录中的字段计数=20。如果可能的话,我会问一个新问题。哦,是的,当然。我要补充我的答案!我的意思是,每一张记录我都需要那个字段(不是单独的计数)。在JSON中添加新字段count
。希望它是清楚的。然后输出JSON将有3个字段name
value
和count
啊,是的,没问题,我将添加count字段!