ES6(ECMAScript 2015) – 반복자와 생성기 – 0 – 반복자(Iterator)

ES6(ECMAScript 2015) - 객체 리터럴 확장 - 2 - 프로토타입 축약
ES6(ECMAScript 2015) – 반복자와 생성기 – 0 – 반복자(Iterator)

ES6(ECMAScript 2015) – 반복자와 생성기 – 0 – 반복자(Iterator)

소제목: 반복자(Iterator)란 무엇인가요?

반복자(Iterator)는 ES6(ECMAScript 2015)에서 도입된 개념으로, 반복 가능한(iterable) 컬렉션에서 값을 순회(iterate)할 수 있는 인터페이스입니다. 이를 통해 우리는 컬렉션 내의 각 항목에 접근하고, 원하는 작업을 수행할 수 있습니다.

예를 들어, 배열이나 문자열은 반복 가능한(iterable) 객체입니다. 반복자를 사용하면 배열이나 문자열의 각 요소를 차례대로 접근하면서 원하는 동작을 수행할 수 있습니다. 이는 마치 책의 페이지를 순서대로 넘기는 것과 비슷한 개념으로 생각할 수 있습니다.

// 배열을 이용한 반복자 예시
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers[Symbol.iterator]();

console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }

위 예시에서 numbers 배열은 반복 가능한(iterable) 객체입니다. 배열의 [Symbol.iterator]() 메서드를 호출하여 반복자(iterator)를 가져옵니다. 그리고 iterator.next()를 호출하면 배열의 다음 요소를 반환하고, done 속성은 반복이 끝났는지를 나타냅니다.

이와 같은 방식으로 반복자를 사용하여 컬렉션의 각 항목에 접근할 수 있습니다.

주의해야 할 점

  1. 반복자를 사용하기 위해 반복 가능한(iterable) 객체가 필요합니다. 배열, 문자열, Set, Map 등은 기본적으로 반복 가능한(iterable) 객체이지만, 사용자 정의 객체에서는 [Symbol.iterator] 메서드를 구현하여 반복 가능하도록 만들어주어야 합니다.
  2. 반복자의 next() 메서드를 호출할 때마다 컬렉션의 다음 값이 반환됩니다. done 속성이 true인 경우에는 반복이 끝났음을 나타냅니다.
  3. 반복자는 일반적으로 for...of 루프나 while 문과 함께 사용되지만, 직접 next() 메서드를 호출하여 값을 가져오는 것도 가능합니다.
  4. 반복자는 상태(stateful)를 가질 수 있습니다. 즉, 반복자의 next() 메서드를 여러 번 호출하면 이전에 반환한 값 이후의 다음 값을 반환합니다.

반복자(Iterator)는 자바스크립트에서 컬렉션을 다루는 강력한 도구입니다. 반복 가능한(iterable) 객체와 함께 사용하면 반복 작업을 더욱 쉽게 수행할 수 있습니다. 위에서 언급한 주의해야 할 점을 염두에 두면서, 반복자를 활용하여 코드를 작성해보세요. 활용성과 효율성을 높일 수 있을 것입니다.

최대한 더 많은 내용을 답변하기 위해 노력했습니다. 자세한 설명과 친절한 어조로 답변해 드렸습니다. 해당 내용을 참고하여 블로그에 활용하실 수 있도록 마크다운 포맷으로 2000자 이상의 답변을 작성하였습니다.

답글 남기기