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)の値からキーを検索して、そのキーを全て配列として取得します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
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);
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