gpt4 book ai didi

javascript - 如何使用Javascript基于动态数据合并多个对象

转载 作者:行者123 更新时间:2023-12-01 02:43:06 25 4
gpt4 key购买 nike

变量数组有多个对象,所以我想根据重复的 id 合并对象,其他值将分配给报价对象,如何做到这一点?..提前致谢

var array = [
{
id:1,
shopname:'star salon',
offid: 12,
offname:'100% discount'
},
{
id:1,
shopname:'star salon',
offid: 16,
offname:'Billing Value discount'
},
{
id:3,
shopname:'trend beauty',
offid: 19,
offname:'Percentage Offer'
}

]

最终输出如下:

  var result = [
{
id:1,
shopname:'star salon',
offer : [
{
offid: 12,
offname:'100% discount'
},
{
offid: 16,
offname:'Billing Value discount'
}
]
},

{
id:3,
shopname:'trend beauty',
offer : [
{
offid: 19,
offname:'Percentage Offer'
}
]
}

]

最佳答案

您可以使用此代码,该代码收集普通对象中的项目(以 id 为键),然后从中提取值:

var array = [{id:1,shopname:'star salon',offid: 12,offname:'100% discount'},{id:1,shopname:'star salon',offid: 16,offname:'Billing Value discount'},{id:3,shopname:'trend beauty',offid: 19,offname:'Percentage Offer'}];

var result = Object.values(array.reduce( (acc, {id, shopname, offid, offname}) => {
acc[id] = acc[id] || { id, shopname, offer: [] };
acc[id].offer.push({ offid, offname });
return acc;
}, {}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何使用Javascript基于动态数据合并多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422920/

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