본문 바로가기
카테고리 없음

JS: iterable 객체

by 오늘도히어로 2024. 7. 26.
반응형

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);
}

 

참고자료

 

MDN Web Docs: Iteration protocols

MDN Web Docs: for…of

반응형