在Javascript中查找某些键的值最小的对象

时间:2014-10-30 11:55:54

标签: javascript arrays object min

在我的Javascript程序中,我有一个Person个对象的列表。

例如

[
     "Michael": {
          "age": 45,
          "position": "manager",
          ...
     },
    "Dwight": {
          "age": 36,
          "position": "assistant manager",
          ...
     },
    ....
]

我想找到最年轻的Person

我通过创建两个数组来实现这一点:所有Person s中的一个和所有年龄中的一个,并获得最低年龄的索引并将其应用于第一个数组。像:

var arrayOfPersons = [persons[0], persons[1], ....];
var arrayOfAges = [persons[0].age, persons[1].age, ....];
var min = arrayOfAges.indexOf(Math.max.apply(Math, arrayOfAges));
var youngestPerson = arrayOfPerson[min];

这个问题是效率低下并不是最好的方法。此外,它并没有解决最年轻的问题。

有没有人知道更原生,更简单的方法呢?

1 个答案:

答案 0 :(得分:0)

您可以按年龄属性对人员数组进行排序,然后选择第一个:

var persons = [
    { name: 'Michael', age: 45, position: 'manager' },
    { name: 'Dwight', age: 36, position: 'assistant manager' },
    { name: 'Foo', age: 99, position: 'foo' },
    { name: 'Bar', age: 37, position: 'bar' }
];

persons.sort(function(a, b) {
    return a.age > b.age;
});

console.log('Youngest person: ', persons[0]);