[TypeScript]Map(マップ)の全てのキーを配列として取得するには?

TypeScript

どうも、ちょげ(@chogetarou)です。

Map(マップ)の全てのキー(key)を配列(array)に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Map(マップ)の全てのキー(key)を配列(array)として取得する方法は、2つあります。

スプレッド構文

1つは、スプレッド構文を使う方法です。

まず、[...]を記述します。

そして、「...」の右辺で、Mapからkeys()を呼び出します。

//T=キーの型、map=マップ
const keys: T[] = [...map.keys()]

上記のスプレッド構文は、keys()を呼び出したMapから全てのキーを配列として取得します。

使用例

const nums: Map<string, number> = new Map();
nums.set("one", 1)
nums.set("two", 2)
nums.set("three", 3)
nums.set("four", 4)
nums.set("five", 5)

const keys: string[] = [...nums.keys()]

console.log(keys)
出力:
["one", "two", "three", "four", "five"] 

Array.from()

もう1つは、Array.from()を使う方法です。

まず、Array.from()を呼び出します。

そして、Array.from()の引数で、Mapからkeys()を呼び出します。

//T=キーの型、map=マップ
const keys: T[] = Array.from(map.keys())

上記のArray.from()は、keys()を呼び出したMapから全てのキーを配列として取得します。

使用例

const nums: Map<string, number> = new Map();
nums.set("one", 1)
nums.set("two", 2)
nums.set("three", 3)
nums.set("four", 4)
nums.set("five", 5)

const keys: string[] = Array.from(nums.keys())

console.log(keys)
出力:
["one", "two", "three", "four", "five"] 

まとめ

Map(マップ)の全てのキー(key)を配列(array)として取得する方法は、次の2つです。

  • スプレッド構文を使う方法
    const keys: T[] = [...map.keys()]
  • Array.from()を使う方法
    const keys: T[] = Array.from(map.keys())

コメント

タイトルとURLをコピーしました