首页 > 解决方案 > 在多维数组中选择具有最高值的对象

问题描述

我试图找到选择具有最高特定属性值(在本例中为错误答案的数量)并返回另一个属性(名称)的对象的最佳方法。EG 以下对象应返回 Mark:

[
{name: "Henry", age: "NYN", attempts: 3, wrong: 2},
{name: "Mark", age: "NNNY", attempts: 4, wrong: 3},
{name: "Beth", age: "", attempts: 0, wrong: 0},
{name: "Sally", age: "YYNY", attempts: 4, wrong: 1},
]

解决这个问题的最佳方法是什么(在 JavaScript 中)?谢谢你的帮助!

标签: javascriptarraysoop

解决方案


这是一个简单的方法:

var objArray=[
{name: "Henry", age: "NYN", attempts: 3, wrong: 2},
{name: "Mark", age: "NNNY", attempts: 4, wrong: 3},
{name: "Beth", age: "", attempts: 0, wrong: 0},
{name: "Sally", age: "YYNY", attempts: 4, wrong: 1},
];
function getNameOfMostWrong(){
  //Set first object in array for most wrong as default
  var mostWrongPerson=objArray[0];
  for(var person in objArray){
    if(objArray[person].wrong > mostWrongPerson.wrong){
      mostWrongPerson=objArray[person];
    }
  }
  return mostWrongPerson.name;
}

推荐阅读