gpt4 book ai didi

javascript - 根据数组中的键连接并删除一些 json 元素

转载 作者:行者123 更新时间:2023-11-30 07:19:48 24 4
gpt4 key购买 nike

我有一个 JSON 数组对象,它有一个属性 id 和多个条目,每个条目都有一些更多的属性。我想根据这个 id 合并这些对象并删除冗余数据。相同的 id 值也将彼此相邻。查看以下数据以了解更多信息:

var obj = [  {"Id":13075121312, "p1":"R"}
,{"Id":13075121312, "p2":"R"}
,{"Id":13075121312, "p3":"R"}
,{"Id":9160507252, "p1":"R",}
,{"Id":9160507252, "p2":"R",}
,{"Id":9160507252, "p3":"R",}
] ;

我需要按如下方式转换这个对象数组:

var obj = [  {"merchantId":13075121312, "p1":"R", "p2":"R", "p3":"R"}
,{"merchantId":9160507252, "p1":"R", "p2":"R", "p3":"R"}
] ;

如有任何帮助,我们将不胜感激。我尝试了以下功能,但它不起作用:

function jsonConcat(obj) {
for(var i=0; i<obj.length-1; ){
if(obj[i]['d'] === obj[i+1]['Id']){
obj[i]['Id'] = obj[i+1]['Id'];
delete json[obj[i+1]];
}
i = i + 1;
}
return obj;
}

谢谢

最佳答案

您可以尝试使用 Array.reduce 进行以下操作和 Object.values

var obj = [  {"Id":13075121312, "p1":"R"},{"Id":13075121312, "p2":"R"},{"Id":13075121312, "p3":"R"},{"Id":9160507252, "p1":"R"},{"Id":9160507252, "p2":"R"},{"Id":9160507252, "p3":"R"}];

obj = Object.values(obj.reduce((a,{Id, ...rest}) => {
a[Id] = a[Id] || {merchantId:Id};
Object.assign(a[Id], rest);
return a;
}, {}));

console.log(obj);

关于javascript - 根据数组中的键连接并删除一些 json 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54684081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com