JavaScript - Map要素を削除する方法

JavascriptのMapから要素を削除する方法を紹介します。

1. Map.delete() で要素を削除する

Map.delete(key) は、引数に渡された key が Map にあるときに削除をします。 要素が削除された場合はtrueを返し、keyが存在しないなどの理由で削除できない場合はfalseを返します。

let myMap = new Map([
  ['c', 2],
  ['a', 4],
  ['d', 1],
  ['b', 3],
]);

console.log("delete('a'): " + myMap.delete('a'));
console.log(myMap);

console.log("delete('abc'): " + myMap.delete('abc'));
console.log(myMap);

Output:

delete('a'): true
Map(3) { 'c' => 2, 'd' => 1, 'b' => 3 }
delete('abc'): false
Map(3) { 'c' => 2, 'd' => 1, 'b' => 3 }

2. 正規表現式を利用して複数要素を削除

Mapのキーが文字列の場合は、forステートメントと正規表現を使用して、特定の正規表現パターンに一致する要素をすべて削除できます。

string.match(pattern) は、文字列がパターンと一致する場合に true を返します。以下のように、Mapのすべてのキーを巡回しながら、パターンに一致する要素を削除できます。 ちなみに、 hello.* は hello で始まるすべての文字列パターンを意味します。

let myMap = new Map([
  ['abc', 2],
  ['def', 4],
  ['hello, java', 1],
  ['hello, javascript', 3],
]);

for (const key of myMap.keys()) {
  if (key.match('hello.*')) {
    myMap.delete(key);
  }
}

console.log(myMap);

Output:

Map(2) { 'abc' => 2, 'def' => 4 }
codechachaCopyright ©2019 codechacha