TypeScript filter()でオブジェクト(Object)の値からキーを検索して取得する

環境
Windows 11 Pro 64bit
TypeScript 4.4.4

構文
//obj(対象のオブジェクト)のvalue(検索対象)からキーを検索して取得
let 変数名 = Object.keys(obj).find(key => obj[key] === value);
Object.keys()からfilter()を呼び出し、filter()の引数に1つの引数を持つ関数を指定します。
「オブジェクトの引数のキーにアクセスした結果」と「検索対象の値」が等しい時に
trueとなる条件式を返します。
find()は、オブジェクト(Object)の値からキーを検索して、そのキーを全て配列として取得します。

使用例

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

const nums: Numbers = { 
    "sas": 1, 
    "pus": 2,
    "toto": 3,
    "four": 4,
    "tpp": 5,
}

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

console.log(result);

出力結果:
[LOG]: [“toto"]

IT

Posted by arkgame