Получить ключ максимального значения в словаре nodejs

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

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

return b[key] -> return key
Keith 06.06.2018 16:52

Это возвращает самый высокий ключ, а не ключ максимального значения

isanma 06.06.2018 16:53

Используйте записи объекта, это даст вам как ключ, так и значение.

Keith 06.06.2018 16:54

Это не словарь, это объект.

T.J. Crowder 06.06.2018 17:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
2 549
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
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.info(index);

Сначала найдите самые высокие значения из объекта, затем используйте метод поиска массива на 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.info(val)

Другие вопросы по теме