从键/值对象对中查找最大值Javascript

时间:2018-01-28 03:52:46

标签: javascript arrays object max key-value

我坚持为什么我的Javascript findMaxObjectValue函数不起作用。以下是我的想法:

function findMaxObjectValue(obj) {
    return Object.keys(obj).reduce(function(a, b) {
        return (obj.a > obj.b) ? a : b;
    }, obj[a]);
}

当我运行时:

findMaxObjectValue([{Alex: 1}, {Katie: 2}, {Nora: 3}, {Dana: 4}]) 

当我希望'3'时,它会返回'4' ...所有帮助都很感激!

2 个答案:

答案 0 :(得分:1)

这是因为你减少了键而不是值。它正在比较Alex,Katie,Nora和Dana。 Nora按字典顺序排在最后,所以答案就是这样。

如果要按值1,2,3,4排序,则使用values()方法,而不是keys()方法。

答案 1 :(得分:0)

使用Object.values代替Object.keys

function findMaxObjectValue(obj) {

  var objLargestVal = Object.values(obj).reduce(function(a, b) {
    return (obj[a] > obj[b]) ? a : b;
  });
  for (var keys in objLargestVal) {
    return objLargestVal[keys]
  }
}


console.log(findMaxObjectValue([{
  Alex: 1
}, {
  Katie: 2
}, {
  Nora: 3
}, {
  Dana: 4
}]))