Arrays 节点js对象数组公共值和

Arrays 节点js对象数组公共值和,arrays,node.js,Arrays,Node.js,我有以下数组对象 var arrayteamscore = [{ Team: 'A team', round: 'round 1', score: 25, }, { Team: 'B team', round: 'round 1',

我有以下数组对象

var arrayteamscore = [{
                    Team: 'A team',
                    round: 'round 1',
                    score: 25,
                  }, {
                    Team: 'B team',
                    round: 'round 1',
                    score: 20,
                  },
                  {
                    Team: 'A team',
                    round: 'round 2',
                    score: 10,
                  }];
我想得到每个队的总分,我期待下面的结果

 var arrayteamfinalscore = [{
                            Team: 'A team',
                            score: 35,
                            }, {
                            Team: 'B team',
                            score: 20,
                           },
                           ];
但由于我不知道如何完成它,我还是坚持使用下面的代码

 var total= function(arrayteamscore) {
 var total= 0,


 for (var i = 0; i < array.length; i++) {
total+= array[i].total;
 }

return total;
};
var total=函数(arrayteamscore){
var总计=0,
对于(var i=0;i
尝试使用
减少
方法:

var arrayteamscore=[{
团队:“一个团队”,
第1轮:“第1轮”,
得分:25分,
}, {
团队:“B团队”,
第1轮:“第1轮”,
分数:20,,
},
{
团队:“一个团队”,
第二轮:“第二轮”,
得分:10分,
}];
const result=arrayteamscore.reduce((a,{团队,回合,得分})=>{
a[队]=a[队]|{队,回合,得分:0};
a[团队]。得分+=得分;
返回a;
}, {})

console.log(Object.values(result))尝试使用
reduce
方法:

var arrayteamscore=[{
团队:“一个团队”,
第1轮:“第1轮”,
得分:25分,
}, {
团队:“B团队”,
第1轮:“第1轮”,
分数:20,,
},
{
团队:“一个团队”,
第二轮:“第二轮”,
得分:10分,
}];
const result=arrayteamscore.reduce((a,{团队,回合,得分})=>{
a[队]=a[队]|{队,回合,得分:0};
a[团队]。得分+=得分;
返回a;
}, {})
console.log(Object.values(result))
函数分数对象(分数){
让响应={};
for(设i=0;i{
总推力({
组别:v[0],,
分数:v[1]
});
返回agg;
}, []);
返回响应;
};
log(scoresAsArray(scoresasobject(scores));
函数分数对象(分数){
让响应={};
for(设i=0;i{
总推力({
组别:v[0],,
分数:v[1]
});
返回agg;
}, []);
返回响应;
};
log(scoresAsArray(scoresasobject(scores));

不错。但实际上,这在对象中也有圆形信息,这不是一个好的响应,因为它携带了不相关的信息。很好。但实际上,这在对象中也有圆形信息,这不是很好的响应,因为它携带了不相关的信息。
Object.values(
  arrayteamscore.reduce((acc, next) => {
    acc[next.Team] = acc[next.Team]
    ? { ...acc[next.Team], score: acc[next.Team].score + next.score }
    : next;

    return acc;
  }, {})
)
function scoreAsObject(scores) {
  let response = {};
  for (let i = 0; i < scores.length; i++) {
    let teamName = scores[i]["Team"];
    if (response[teamName]) {
      response[teamName] = response[teamName] + scores[i]["score"];
    } else {
      response[teamName] = scores[i]["score"];
    }
  }
  return response;
}

function scoresAsArray(scoresAsObject) {
  let resp = Object.entries(scoresAsObject).reduce((agg, v, idx) => {
    agg.push({
      Team: v[0],
      score: v[1]
    });
    return agg;
  }, []);
  return resp;
};

console.log(scoresAsArray(scoreAsObject(scores)));