Javascript 按对象键合并对象数组

Javascript 按对象键合并对象数组,javascript,Javascript,鉴于上面的屏幕截图,我想通过“hand”属性合并这个数组,这样最终的结果将是 [{hand: "KdAhAsKs", checkPct: 28, betPct: 72},{hand: "KcAhAsKs", checkPct: 28, betPct: 72}] 您可以使用array#reduce在与每个唯一hand对应的对象中累积公共属性,然后使用object.values()取出所有值 const data=[{hand:“KdAhAsKs”,checkPct:28},{hand:“KdA

鉴于上面的屏幕截图,我想通过“hand”属性合并这个数组,这样最终的结果将是

[{hand: "KdAhAsKs", checkPct: 28, betPct: 72},{hand: "KcAhAsKs", checkPct: 28, betPct: 72}]
您可以使用
array#reduce
在与每个唯一
hand
对应的对象中累积公共属性,然后使用
object.values()
取出所有值

const data=[{hand:“KdAhAsKs”,checkPct:28},{hand:“KdAhAsKs”,betPct:72},{hand:“KcAhAsKs”,checkPct:28},{hand:“KcAhAsKs”,betPct:72},
结果=Object.values(data.reduce((r,{hand,…rest})=>{
r[手]=r[手]|{hand};
r[手]={…r[手],…休息};
返回r;
},{}));

控制台日志(结果)您可以尝试类似的方法。希望这有帮助

const data=[{hand:“KdAhAsKs”,checkPct:28},{hand:“KdAhAsKs”,betPct:72},{hand:“KcAhAsKs”,checkPct:28},{hand:“KcAhAsKs”,betPct:72}];
const combine=(数据)=>
数据减少((acc,val)=>{
常数i=acc.findIndex(o=>o.hand==val.hand);
如果(i!==-1){
acc[i]={…acc[i],…val};
返回acc;
}
否则返回acc.concat(val);
}, []);

console.log(合并(数据))看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。