[TypeScript]連想配列の全てのキーを取得するには?

TypeScript

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

連想配列の全てのキー(key)を取得する方法を紹介します。

スポンサーリンク

方法

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

連想配列の全てのキー(key)を取得する方法は、オブジェクトとMapで異なります。

オブジェクトの場合

オブジェクト(Object)の全てのキー(key)を取得する場合は、Object.keys()を使います。

まず、Object.keys()を呼び出します。

そして、Object.keys()の引数に、対象のオブジェクトを指定します。

//T=キーの型、obj=オブジェクト
const keys: T[] = Object.keys(obj)

上記のObject.keys()は、引数に指定したオブジェクトの全てのキーを持つ配列を取得します。

使用例

const nums = {
    "one": 1,
    "two": 2,
    "three": 3,
    "four": 4,
    "five": 5,
}

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

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

Map(マップ)の場合

Map(マップ)の全てのキーを取得する場合は、keys()を使います。

具体的な方法としては、「map.keys()」のように、Mapからkeys()を呼び出します。

//T=キーの型、map=マップ
const keys: IterableIterator<T> = map.keys()

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

Mapの全てのキーを配列として取得したい場合は、Array.from()もしくはスプレッド構文を使います。

const keys: T[] = Array.from(map.keys())
const keys: T[] = [...map.keys()]

使用例

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: IterableIterator<string> = nums.keys()

for (let key of keys) {
    console.log(key)
}
出力:
[LOG]: "one" 
[LOG]: "two" 
[LOG]: "three" 
[LOG]: "four" 
[LOG]: "five" 

まとめ

連想配列の全てのキー(key)を取得する方法は、オブジェクトとMapで異なります。

  • オブジェクトの場合は、Object.keys()を使う
    const keys: T[] = Object.keys(obj)
  • Mapの場合は、keys()を使う
    const keys: IterableIterator<T> = map.keys()

コメント

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