[{"id":1},{"id":2},{"id":3}]
我知道我可以使用max这样的var max = Math.max.apply(Math,myArray)(如果我有这样的数组[1,2,3]
)但是因为我必须遍历列表,所以我只是我想我可以使用循环来获得最大的数字;
$.each(function(){
//this.id
// how to continue here?
});
答案 0 :(得分:6)
您仍然可以使用Math.max.apply
构造。只需使用map
从对象中生成一组id:
var maxId = Math.max.apply(Math, myList.map(function(o){ return o.id }));
答案 1 :(得分:2)
var items = [{ "id": 2 }, { "id": 1 }, { "id": 3 }];
var maxId = Number.MIN_VALUE;
$.each(items, function (index, item) {
maxId = Math.max(maxId, item.id);
});
var maxId = Number.MIN_VALUE;
items.forEach(function (item) {
maxId = Math.max(maxId, item.id)
});
var maxId = items.reduce(function (maxId, item) {
return Math.max(maxId, item.id)
}, Number.MIN_VALUE);
Underscore.js的max也适用于旧浏览器:
var maxId = _.max(items, function (item) { return item.id }).id;