在我的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];
这个问题是效率低下并不是最好的方法。此外,它并没有解决最年轻的问题。
有没有人知道更原生,更简单的方法呢?
答案 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]);