どうも、ちょげ(@chogetarou)です。
find()を使ってMap(マップ)の値(value)からキー(key)を取得する方法を紹介します。
方法

find()を使ってMap(マップ)の値(value)からキー(key)を取得するには、配列を使います。
まず、Mapをスプレッド構文で配列に変換します。
変換した配列からfind()を呼び出します。
find()の引数に「([key, value]) => value == x
」(x=対象の値)を指定します。
そして、find()の結果のインデックス「0」にアクセスします。
//map=対象のマップ, x=対象の値
let key = [...map].find(([key, value]) => value == x)[0];
上記のfind()のインデックス「0」にアクセスすることで、Mapの値からキーを取得できます。
使用例
function getKey(map, x) {
return [...map].find(([key, value]) => value == x)[0];
}
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
console.log(getKey(nums, 1));
console.log(getKey(nums, 4));
console.log(getKey(nums, 5));
出力:
one
four
five
コメント