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)));