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"]