2014-11-04 65 views
-1

我想从对象中获得最高的键和值,我如何返回所需的结果?如何从对象获得最高的键和值

这是我的目标:

categories = { 
      'personal' : 4, 
      'swag' : 3, 
      'mingle' : 2, 
      'attention' : 1 
}; 

所需的功能:

returnMax(categories) // {personal : 4} 
+1

定义 “最高”。 “个人:4”最高?仅仅因为它是先编码的? Javascript没有属性的顺序。 http://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order – 2014-11-04 23:26:59

+2

你是否试图自己实现和算法?我的意思是,你已经在'returnMax'的括号之间尝试了什么? – robbmj 2014-11-04 23:27:12

+0

嘿,是的,我试图写我自己的功能,但它不工作。有没有已经创建的功能? – user990717 2014-11-04 23:33:48

回答

1

这是我会怎么做:http://jsfiddle.net/nwj7sad1/5/

categories = { 
    'personal' : 4, 
    'swag' : 3, 
    'mingle' : 2, 
    'attention' : 1 
}; 


console.log(MaxCat(categories)); 

function MaxCat(obj){ 
    var highest = 0; 
    var arr = []; 
    for (var prop in obj) { 
     if(obj.hasOwnProperty(prop)) { 
      if(obj[prop] > highest){ 
       arr = []; 
       highest = obj[prop]; 
       arr[prop] = highest; 
      } 

     } 
    } 
    return arr; 
} 
+0

谢谢,这正是我所需要的。做得好! – user990717 2014-11-05 01:23:45

0

对于这些类型的东西,我喜欢写我自己的algorythms。这是一个我赶紧写了:

function highest(o){ 
    var h = undefined; 

    for(var key in o){ 
     var current = o[key]; 

     if(h === undefined || current > h){ 
      h = current; 
     } 
    } 

    return h; 
} 

JSFiddle