如何从javascript对象数组中创建特定对象?
我没有灵感,可能是我必须做的很简单,但idk 假设我们有一个数组:如何从javascript对象数组中创建特定对象?,javascript,arrays,html,oop,Javascript,Arrays,Html,Oop,我没有灵感,可能是我必须做的很简单,但idk 假设我们有一个数组: var answers = [ { name: 'Name 1', score: 5, correct_ans: 'y' challenge: .... }, { name: 'Name 2', score: 10, correct_ans: 'n', challenge: .... }, { name: 'Name 1', sc
var answers = [
{
name: 'Name 1',
score: 5,
correct_ans: 'y'
challenge: ....
},
{
name: 'Name 2',
score: 10,
correct_ans: 'n',
challenge: ....
},
{
name: 'Name 1',
score: 12,
correct_ans: 'y',
challenge: ....
},
{
name: 'Name 2',
score: 8,
correct_ans: 'y',
challenge: ....
}
]
我需要的是另一个问题数组,如下所示:
var array = [
{
name: 'Name1',
overall_score: --total score-- if the correct_ans is y
score: [
{
score: 5,
challenge: ....
}
]
}
]
等等。。
基本上,我想用答案表创建一个排行榜。
我设法在不重复的情况下提取了对象。我不确定这是否对我有帮助:您可以使用分组数据迭代并构建一个新数组
var questions=[{team_name:'team A',points:0,correct_ans:'n'},{team_name:'team A',points:15,correct_ans:'y'},{team_name:'team B',points:15,correct_ans:'y'},{team__name:'team A',points:20,correct_ans y'},{team__ans name:'y'}],
数组=函数(数组){
var r=[];
array.forEach(函数(a){
如果(a.正确答案!='y'){
返回;
}
如果(!此[a.团队名称]){
此[a.team_name]={team_name:a.team_name,总分:0,分数:[]};
r、 推(此[团队名称]);
}
此[a.团队名称].总体得分+=a.分;
这是[a.team\u name].score.push({points:a.points,correct\u ans:a.correct\u ans});
}, {});
返回r;
}(问题);
write(“”+JSON.stringify(数组,0,4)+“”)代码>可能重复是的,但从我所看到的,有很多事情我不明白。但谢谢你的链接,它可能会在未来有所帮助。这正是我所需要的。多谢各位!