Я хочу получить ключ максимального значения в словаре с помощью 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);
Есть идеи, как это сделать?
Это возвращает самый высокий ключ, а не ключ максимального значения
Используйте записи объекта, это даст вам как ключ, так и значение.
Это не словарь, это объект.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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)
return b[key]->return key