[TypeScript]find()でオブジェクトの値からキーを検索して取得するには?

TypeScript

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

find()を使ってオブジェクトの値(value)からキー(key)を検索して取得する方法を紹介します。

スポンサーリンク

方法

find()を使ってオブジェクトの値(value)からキー(key)を検索して取得するには、Object.keys()を使います。

まず、Object.keys()を呼び出し、引数にオブジェクトを指定します。

Object.keys()からfind()を呼び出し、find()の引数に1つの引数を持つ関数を指定します。

関数で、「オブジェクトの引数のキーにアクセスした結果」と「検索対象の値」が等しい時にtrueとなる条件式を返します。

//obj(対象のオブジェクト)のvalue(検索対象)からキーを検索して取得
let result = Object.keys(obj).find(key => obj[key] === value);

上記のfind()は、オブジェクト(Object)の値からキーを検索して、そのキーを取得します。

使用例

type Numbers = {
    [key: string]: number
}

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

//3のキーを検索して取得
let result = Object.keys(nums).find(key => nums[key] === 3);

console.log(result);
出力:
[LOG]: "two" 

コメント

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