получить ключ максимального значения в словаре nodejs - PullRequest
0 голосов
/ 06 июня 2018

Я хочу получить ключ максимального значения в словаре, используя 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);

Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Сначала найдите самые высокие значения из объекта, затем используйте метод поиска массива на 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)
0 голосов
/ 06 июня 2018
const result = Object.entries(b).reduce((a, b) => a[1] > b[1] ? a : b)[0]

Вы можете просто поработать с парами ключ / значение, чтобы упростить это.Или более простой подход:

let index, max = 0;

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

console.log(index);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...