본문 바로가기

Today I Learned

모던 자바스크립트 Deep Dive 37장 Set과 Map

Set 객체는 중복되지 않는 유일한 값들의 집합으로서, 수학적 집합 구현하기 위한 자료구조이다.

요소 개수 확인 : Set.prototype.size 프로퍼티 이용

add 메서드는 연속적으로 호출 가능하다.

const set = new Set();

set.add(1).add(2);
console.log(set); // Set(2) {1, 2}

NaN === NaN 다르다고 평가되지만, Set객체는 둘을 같다고 평가한다.(Map도 마찬가지)

const set = new Set();

console.log(NaN === NaN); // false
console.log(0 === -0); // true

// NaN과 NaN을 같다고 평가하여 중복 추가를 허용하지 않는다.
set.add(NaN).add(NaN);
console.log(set); // Set(1) {NaN}

// +0과 -0을 같다고 평가하여 중복 추가를 허용하지 않는다.
set.add(0).add(-0);
console.log(set); // Set(2) {NaN, 0}

Map 객체는 객체와 유사하지만, 이러터블이며 객체를 키로 수도 있다.

, 중복된 키를 갖는 요소가 있으면 값이 덮어써진다.

const map = new Map([['key1', 'value1'], ['key1', 'value2']]);
console.log(map); // Map(1) {"key1" => "value2"}