【问题标题】:get key of max value in dictionary nodejs获取字典nodejs中最大值的键
【发布时间】:2018-06-06 14:51:51
【问题描述】:

我想使用 nodejs 在字典中获取最大值的键。 这就是我所做的,但它返回最大值而不是键。

var b = { '1': 0.02, '2': 0.87, '3': 0.54, '4': 0.09, '5': 0.74 };

var arr = Object.keys( b ).map(function ( key ) { return b[key]; });
var max = Math.max.apply( null, arr );
console.log(max);

知道怎么做吗?

【问题讨论】:

  • return b[key] -> return key
  • 返回最大值的键不是最大值的键
  • 使用对象条目,它会给你键和值。
  • 它不是字典,它是一个对象。

标签: javascript node.js dictionary


【解决方案1】:
const result = Object.entries(b).reduce((a, b) => a[1] > b[1] ? a : b)[0]

您可能只想使用键/值对来简化此操作。或者更基本的方法:

let maxKey, maxValue = 0;

for(const [key, value] of Object.entries(b)) {
  if(value > max) {
    maxValue = value;
    maxKey = key;
  }
}

console.log(index);

【讨论】:

    【解决方案2】:

    首先从对象中找到最大值,然后在Object.keys[b]上使用数组查找方法并返回元素

    var b = {
      '1': 0.02,
      '2': 0.87,
      '3': 0.54,
      '4': 0.09,
      '5': 0.74
    };
    var highestVal = Math.max.apply(null, Object.values(b)),
      val = Object.keys(b).find(function(a) {
        return b[a] === highestVal;
      });
    console.log(val)

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 2022-12-02
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多