GAミント至上主義

Web Monomaniacal Developer.

JavaScript (TypeScript) のMapをObjectに変換する

TypeScriptで素のObjectよりMapの方がTypeScriptと相性がよく使う機会が増えてきたけど、レスポンスに変換するときなどはObjectに変換する必要があったのでメモ。

ぐぐったらreduceとか使う古いのが検索上位に出てきてしまうが、
Map.prototype.entries()Object.fromEntries()に渡すというシンプルな組合わせでできる。

Map - JavaScript | MDN

Object.fromEntries() - JavaScript | MDN

以下はChromeのconsoleなのでJavaScriptで試したけどTypeScriptでも同じようにできる。

const map = new Map()
>undefined
map.set(1, 'one')
>Map(1) {1 => 'one'}
map.set(2, 'two')
>Map(2) {1 => 'one', 2 => 'two'}
map.set(3, 'three')
>Map(3) {1 => 'one', 2 => 'two', 3 => 'three'}
map.entries()
>MapIterator {1 => 'one', 2 => 'two', 3 => 'three'}
Object.fromEntries(map.entries())
>{1: 'one', 2: 'two', 3: 'three'}

reduced使うやつ
https://qiita.com/mktoho-n/items/6b96674c9c7ba542d2be