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