使用$ .each在数组对象中找到最大的id

时间:2015-08-02 10:01:33

标签: javascript jquery

[{"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?
});

2 个答案:

答案 0 :(得分:6)

您仍然可以使用Math.max.apply构造。只需使用map从对象中生成一组id:

var maxId = Math.max.apply(Math, myList.map(function(o){ return o.id }));

答案 1 :(得分:2)

使用$ .each

var items = [{ "id": 2 }, { "id": 1 }, { "id": 3 }];

var maxId = Number.MIN_VALUE;
$.each(items, function (index, item) {
    maxId = Math.max(maxId, item.id);
});

使用ES5 forEach

var maxId = Number.MIN_VALUE;
items.forEach(function (item) {
    maxId = Math.max(maxId, item.id)
});

使用ES5 reduce

var maxId = items.reduce(function (maxId, item) {
    return Math.max(maxId, item.id)
}, Number.MIN_VALUE);

使用Underscore.js

Underscore.js的max也适用于旧浏览器:

var maxId = _.max(items, function (item) { return item.id }).id;