如何从javascript对象数组中创建特定对象?

如何从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

我没有灵感,可能是我必须做的很简单,但idk

假设我们有一个数组:

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)+“”)可能重复是的,但从我所看到的,有很多事情我不明白。但谢谢你的链接,它可能会在未来有所帮助。这正是我所需要的。多谢各位!