자바스크립트의 세 가지 내장 이터레이터
사실 모든 이터러블 객체는
하나의 이터레이터가 아닌 세 가지를 포함합니다:
values, keys 그리고 entries.
각 객체 유형마다 기본적으로 적용되는
자체 이터레이터가 있습니다. 배열의 경우 - values이며,
예를 들어 Map 컬렉션의 경우,
entries입니다.
이러한 지식을 바탕으로, 이제 우리는
이 원리를 모든 컬렉션에 적용할 수 있습니다.
예를 들어, 다음과 같은 Map 컬렉션이 있다고 가정해 봅시다:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
기본적으로 이 컬렉션에는
entries 이터레이터가 적용됩니다:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
하지만 우리는 컬렉션의 키를 쉽게 얻을 수 있습니다:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
값도 얻을 수 있습니다:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Set 컬렉션에서 기본적으로 작동하는 이터레이터는 무엇인가요?