[JavaScript] 자바스크립트에서 반복 처리를 위한 반복자 사용하기

2022. 8. 9. 05:46Program/JavaScript

267_자바스크립트에서 반복 처리를 위한 반복자 사용하기

[적용]

  • 반복 작업이 가능한 객체를 사용하고 싶을 떄

[문법 1]

메소드 의미 반환
객체[Synbol.iterator]() 반복자 가져오기  반복자
반복자.next() 다음 반복자 가져오기  반복자

[문법 2]

속성 의미 타입
반복자.value 현재값 임의
반복자.done 종료 여부 확인 진리값

[내용]

반복자(Iterator)는 여러 값에 순서대로 접근이 가능한 구조를 가진 객체로,

단어의 원형인 iterate는 반복한다는 의미를 가졌다.

반복자를 가지는 객체를 반복 가능한 객체(Iterable Object)라고 하며, 대표적으로 배열이 있다.

배열은 for...of를 사용해 순서대로 처리할 수 있으며, 반복 가능한 객체라면 같은 방식으로 for...of를 사용할 수 있다.

 

JavaScript 

const array = [1, 2, 3];

for (let value of array) {
  console.log(value);
}

 

배열의 개별 반복자에 접근하는 데는 '배열[Symbol.iterator]()'를 사용하며, 

next()를 사용해 다음 반복자로 이동할 수 있다. 각 객체는 value와 done 속성을 가진다.

 

JavaScript                                                                                                                                                          main.js

const array = ['사자', '호랑이', '곰'];

const iterator = array[Symbol.iterator]();

const next1 = iterator.next();
console.log(next1.value);  // 결과: '사자'
console.log(next1.done);  // 결과: false

const next2 = iterator.next();
console.log(next2.value);  // 결과: '호랑이'
console.log(next2.done);  // 결과: false

const next3 = iterator.next();
console.log(next3.value);  // 결과: '곰'
console.log(next3.done);  // 결과: false

const next4 = iterator.next();
console.log(next4.value);  // 결과: undefined
console.log(next4.done);  // 결과: true

 

실행결과

 

 

 


 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김