[JavaScript]indexOf()でMap(マップ)の値(value)の存在チェックをするには?

JavaScript

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

indexOf()を使ってMap(マップ)に値(value)が存在するかどうか確認する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

indexOf()を使ってMap(マップ)の値(value)の存在チェックをするには、values()を使います。

まず、values()を使って、Mapの値を配列に変換します。

次に、Mapの値を変換した配列からindexOf()を呼び出します。

indexOf()の引数に値(value)を指定します。

そして、indexOf()の結果が「-1」より大きいか調べます。

//map=対象のMap, value=値
[...map.values()].indexOf(value) > -1

上記のindexOf()の結果が「−1」より大きければ、Map(マップ)に値は存在します。

indexOf()の結果が「−1」以下であれば、Mapに値は存在しません。

使用例

function checkValueExists(map, value) {
    return [...map.values()].indexOf(value) > -1
}

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(checkValueExists(nums, 3))
console.log(checkValueExists(nums, 10))
console.log(checkValueExists(nums, 1))
出力:
true
false
true

コメント

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