Tea break

ちょっとした息抜きに

jsのMapオブジェクトをソートしようとした愚かな話

javascript何もわからん...

jsで連想配列を扱いたかったので、Mapオブジェクトを使用(なんとなくObject使うより良さそうだと思ってた)

その後なんだかんだでMapオブジェクトをソート、イテレート回して途中でbreakしたいみたいなことになった

forEachはbreakできないし、lambda使うほどでも無いし、mapのソートはArrayに一度戻して行うしでとても(とても)めんどくさかった

調べるとObjectならfind()で済むらしい

let map = new Map();
map.set('2-1', 8);
map.set('0-1', 12);
map.set('3-1', 4);

map = new Map([...map.entries()].sort((a, b) => a[1] < b[1] ? 1 : -1));

for(let i of map){
    if(i[1] < 5) break;
    console.log(i[0], i[1]);
}
> "0-1" 12
> "2-1" 8