【发布时间】:2014-12-26 10:54:36
【问题描述】:
在我的 Javascript 程序中,我有一个 Person 对象列表。
例如
[
"Michael": {
"age": 45,
"position": "manager",
...
},
"Dwight": {
"age": 36,
"position": "assistant manager",
...
},
....
]
我要找最年轻的Person。
我通过创建两个数组来实现这一点:所有Persons 中的一个和他们所有年龄中的一个,并获取最低年龄的索引并将其应用于第一个数组。喜欢:
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];
这样做的问题是效率低下,这似乎不是最好的方法。它也没有处理最小的可能存在平局的事实。
有谁知道更本地、更简单的方法来做到这一点?
【问题讨论】:
-
您的列表似乎有误。它是一个对象数组还是以人名作为键的单个对象?
-
arrayOfAges 应该是值数组而不是对象
-
@Heikki 这应该是
Person对象的列表 -
@theinvisible 是。这是一个年龄值列表
标签: javascript arrays object min