반응형
iterable 사전뜻: 반복 가능한
Iterable 객체는 자바스크립트에서 반복 가능한 객체를 의미하며, 배열, 문자열, 맵(Map), 세트(Set)와 같이 반복할 수 있는 모든 객체를 포함합니다. 이러한 객체는 반복 작업을 수행할 수 있는 특수한 메서드를 가지고 있습니다.
주요 특징
1. Symbol.iterator 메서드:
• 모든 iterable 객체는 Symbol.iterator라는 특수한 메서드를 가지고 있습니다.
• 이 메서드는 iterator를 반환합니다. iterator는 반복 작업을 수행하는 데 필요한 next 메서드를 가지고 있습니다.
2. Iterator 프로토콜:
• iterator는 next 메서드를 통해 반복 작업을 수행합니다.
• next 메서드는 {value: ..., done: ...} 형태의 객체를 반환합니다.
• done은 반복이 끝났는지를 나타내며, value는 현재 값을 나타냅니다.
3. for…of 루프:
• iterable 객체는 for...of 루프를 사용하여 쉽게 반복할 수 있습니다.
// 배열 (Iterable 객체)
const array = [1, 2, 3];
for (const value of array) {
console.log(value);
}
// 문자열 (Iterable 객체)
const string = "hello";
for (const char of string) {
console.log(char);
}
// 직접 iterator 만들기
const iterableObject = {
[Symbol.iterator]() {
let step = 0;
return {
next() {
step++;
if (step <= 3) {
return { value: step, done: false };
} else {
return { value: undefined, done: true };
}
}
};
}
};
for (const value of iterableObject) {
console.log(value);
}
참고자료
반응형