let hash = new Map();
hash.set(1, 0.125);
hash.set(2, 0.5);
hash.set(3, 0.5);
hash.set(4, 0.1);
hash.set(5, 0);
console.log(hash);
//Map(5) { 1 => 0.125, 2 => 0.5, 3 => 0.5, 4 => 0.1, 5 => 0 }
만약에 이런식으로 key와 value가 나뉘어져 있는 map 객체가 있다고 가정했을때,
값이 높은 순서대로 key 별로 나누어주고 싶다면 ?
entries 메서드는 map 객체에 있는 key와 value를 담아서 iterator 로 리턴해주는데, 스프레드 연산자를 사용해주어서 배열화 해준다.
let hash = new Map();
hash.set(1, 0.125);
hash.set(2, 0.5);
hash.set(3, 0.5);
hash.set(4, 0.1);
hash.set(5, 0);
let answer = [...hash.entries()]
.sort((a, b) => b[1] - a[1])
.map((num) => num[0]);
//[2, 3, 1, 4, 5]
이런식으로 배열화를 해준후에, sort메서드를 통해서 내림차순 정렬을 해준후 map을 통해 그에 맞는 key값만 받아온다.