如何从对象中获取数据并创建对象数组



正如你所看到的,在将其转换为数组并将所有这些对象都放在数组中之后,我现在有了多个对象。我想做的是获得一个新的数组,该数组应该有队长名称和对象中所有带整数的分数,所有这些对象应该像数组中那样保存。我想要实现的目标是这样的[{captain:'John Doe',RoundNumber:Score},{captain:'John Doe',RoundNumber:Score},{captain:'JohnDoe',RoundNumber:Score}]

这是我试图获得一些帮助或指导的结果,下面是数据

"-MXePKlz_DH8qqrIyesI" : {
"game_name" : "test101",
"players_info" : {
"captain" : "john",
"stage_name" : "fun fin fo",
"team_members" : "John,Jane,jaden"
},
"response" : "this is one response",
"round_num" : "1",
"score" : "1"
},
"-MXePV53h9yol1UcLd8v" : {
"game_name" : "test101",
"players_info" : {
"captain" : "Hamza",
"stage_name" : "dssd",
"team_members" : "01,02,03,05"
},
"response" : "another test response....!!!",
"round_num" : "1",
"score" : "0"
},
"-MXeiS_NOtxh3zSsG5sy" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "B",
"stage_name" : "baj",
"team_members" : "S"
},
"response" : "He is just gorgeous ",
"round_num" : "1",
"score" : "6"
},
"-MXeiTyNgMrIPKy2V_GG" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "Mo",
"stage_name" : "fun fin fo",
"team_members" : "Its Just Me and myself :)"
},
"response" : "Thats the same joke we had last week",
"round_num" : "1",
"score" : "4"
},
"-MXeiUGSqOvJdhHh64Vl" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "Schmed",
"captain_email" : "SchmedtheEd@gmail.com",
"stage_name" : "Schmed",
"team_members" : "Schmed, Ed, Ted, Fred"
},
"response" : "Beard",
"round_num" : "1",
"score" : "2"
}
}```

我想说的是,将数据作为一个对象,并执行以下操作:这里我有一个球员:约翰两次上榜,得了2分,第一次是1分,第二次是3分。结果应该列出约翰一次,总分为4分。

var myData = {
"-MXePKlz_DH8qqrIyesI": {
"game_name": "test101",
"players_info" : {
"captain" : "john",
"stage_name" : "fun fin fo",
"team_members" : "John,Jane,jaden"
},
"response" : "this is one response",
"round_num" : "1",
"score" : "1"
},
"-MXePKlz_DH8qqrIyes55": {
"game_name": "test101",
"players_info" : {
"captain" : "john",
"stage_name" : "fun fin fo",
"team_members" : "John,Jane,jaden"
},
"response" : "this is one response",
"round_num" : "1",
"score" : "3"
},
"-MXePV53h9yol1UcLd8v" : {
"game_name" : "test101",
"players_info" : {
"captain" : "Hamza",
"stage_name" : "dssd",
"team_members" : "01,02,03,05"
},
"response" : "another test response....!!!",
"round_num" : "1",
"score" : "0"
},
"-MXeiS_NOtxh3zSsG5sy" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "B",
"stage_name" : "baj",
"team_members" : "S"
},
"response" : "He is just gorgeous ",
"round_num" : "1",
"score" : "6"
},
"-MXeiTyNgMrIPKy2V_GG" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "Mo",
"stage_name" : "fun fin fo",
"team_members" : "Its Just Me and myself :)"
},
"response" : "Thats the same joke we had last week",
"round_num" : "1",
"score" : "4"
},
"-MXeiUGSqOvJdhHh64Vl" : {
"game_name" : "mtest",
"players_info" : {
"captain" : "Schmed",
"captain_email" : "SchmedtheEd@gmail.com",
"stage_name" : "Schmed",
"team_members" : "Schmed, Ed, Ted, Fred"
},
"response" : "Beard",
"round_num" : "1",
"score" : "2"
}
}
var myNewArray = [];
for (const [key, value] of Object.entries(myData)) {
let player = myNewArray.find( e => e.captain === value.players_info.captain );

if (player) {
player.RoundNumber = Number(player.RoundNumber) + Number(value.score);
} else {
myNewArray.push({
captain: value.players_info.captain,
RoundNumber: value.score
});
}
}
console.log(myNewArray);

最新更新