获得对象中的最高价值

时间:2015-10-15 14:40:47

标签: jquery

我有一个像这样的对象:

var lookup = {
    42: "42", 
    43: "43"
}

如何在此对象中获得最高价值?我希望得到43,因为它是最高的数字。

3 个答案:

答案 0 :(得分:2)

正如评论所示,你的问题有点模糊。如果您希望比较解析为int的字符串值,则以下内容应根据您对象的结构进行操作:

var myArray = Object.keys(lookup).map(function(current){ 
    return parseInt(current)
});
var max = Math.max.apply(null, myArray)

答案 1 :(得分:1)

尝试此功能:

function getMax(dataObj){
var max;
for(var key in dataObj){
     if (dataObj.hasOwnProperty(key)) {
        var number = parseFloat(dataObj[key]);
        //max by default is undefined and number could be NaN 
        if(!max && number){ 
            max = number;
        }
        else if(number > max){
            max = number;
        }
    }
}
return max;
}

它将遍历一个对象并获取在该对象上设置的所有属性(而不是在原型链中),尝试将它们转换为数字然后返回最大值。请注意,这不是返回键,而是返回值。

答案 2 :(得分:0)

为了获得多样化的答案,这里是使用lodash的reduce和三元运算符的更实用的实现:

_.reduce(_.values(lookup), function(max, n){ return n > max ? n : max; });