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의 key가 string인 경우, for문과 정규표현식을 이용하여 특정 정규표현식 패턴에 일치하는 요소들을 모두 삭제할 수 있습니다.

string.match(pattern)은 문자열이 패턴에 일치할 때 true를 리턴합니다. 아래와 같이 Map의 모든 key를 순회하면서 패턴과 일치하는 요소들을 삭제할 수 있습니다. 참고로, 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 }
Loading script...
codechachaCopyright ©2019 codechacha