Javascript:在Map()与Object中寻找最高价值

use*_*817 0 javascript maps

我一直在使用对象作为哈希表,并且从中获得了最高的价值Objects.keys(foo).reduce((a,b) => foo[a] > foo[b] ? a : b)。但是,我已切换为使用Maps()。迭代Map对象以获得最高价值的理想方法是什么?

Mar*_*yer 5

您可以传播values()Math.max

let m = new Map([['a', 2], ['b',4], ['c',6]])

console.log("Max:", Math.max(...m.values()))
Run Code Online (Sandbox Code Playgroud)

如果您既需要键也需要值,那么我认为您将回到reduce()使用entries()map:

let m = new Map([['a', 2], ['b',4], ['c',6]])

console.log([...m.entries()].reduce((a, e ) => e[1] > a[1] ? e : a))
Run Code Online (Sandbox Code Playgroud)

  • 哇,我就是喜欢这个答案。 (3认同)