我试图组合两个数组,同时在javascript中添加数据(如果存在)。我不能让它起作用。我要做的是添加这个数组:
[
{
"name":"name1",
"points":{
"intern":57,
"extern":0,
"total":57
}
},
{
"name":"name2",
"points":{
"intern":26,
"extern":0,
"total":26
}
}
]有了这个:
[
{
"name":"name1",
"points":{
"intern":31,
"extern":0,
"total":31
}
}
]但是,如果"name1“已经出现在第一个数组中,我希望添加实习生和外挂点,这样看起来如下所示:
[
{
"name":"name1",
"points":{
"intern":88,
"extern":0,
"total":88
}
},
{
"name":"name2",
"points":{
"intern":26,
"extern":0,
"total":26
}
}
]我怎么能在javascript中做到这一点呢?谢谢你的帮助!
发布于 2018-06-17 10:48:00
使用名称hashtable查找dupes:
const hash = {}, result = [];
for(const { name, points: {intern, extern, total}} of array1.concat(array2)) {
if(hash[name]) {
hash[name].intern += intern;
hash[name].extern += extern;
hash[name].total += total;
} else {
result.push(hash[name] = {name, intern, extern, total});
}
}https://stackoverflow.com/questions/50895749
复制相似问题