[TypeScript]連想配列の要素をクリアして全削除するには?

TypeScript

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

連想配列の要素をクリアして全削除する方法を紹介します。

スポンサーリンク

方法

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

連想配列の要素をクリアして全削除する方法は、Object(オブジェクト)とMap(マップ)で違います。

Objectの場合

Objectの場合は、forループを使います。

まず、for (const key in obj) {}のように、「for..in」でObjectの連想配列をループします。

forループの処理で、連想配列のhasOwnProperty()の返り値がtrueの要素で条件分岐します。

そして、hasOwnProperty()の戻り値がtrueの要素を、deleteで削除します。

//objの要素をクリア
for (const key in obj) {
    if (nums.hasOwnProperty(obj)) {
        delete nums[obj];
    }
}

上記のforループは、ループしたObjectの連想配列の要素をクリアします。

使用例

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

let nums: Numbers = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 };

for (const key in nums) {
    if (nums.hasOwnProperty(key)) {
        delete nums[key];
    }
}

console.log(nums)
出力:
{}  

Mapの場合

Mapの場合は、Math.clear()を使います。

具体的な方法としては、「map.clear()」のように、Mapからclear()を呼び出します。

map.clear()

上記のclear()は、呼び出したMap(マップ)をクリアして、要素を全削除します。

使用例

const nums: Map<string, number> = new Map();
nums.set("one", 1)
nums.set("two", 2)
nums.set("three", 3)
nums.set("four", 4)
nums.set("five", 5)

nums.clear()

console.log(nums)
出力:
Map (0) {} 

まとめ

連想配列の要素をクリアして全削除する方法は、Object(オブジェクト)とMap(マップ)で違います。

  • Objectの場合は、forループを使う
  • Mapの場合は、clear()を使う
    map.clear()

コメント

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