Iterator 및 for...of...순환하다

1332 단어
Iterator 인터페이스는 컬렉션 데이터를 일관되게 읽는 작업입니다.

1. 기본 사용


  우리는 기본적인 사용 방법을 보고 아래의 코드를 봅시다.
let arr = ['hello', 'world']

let map = arr[Symbol.iterator]()

map.next();   //  value: 'hello', done: false
map.next();   //  value: 'world', done: false
map.next();   //  value: undefined, done: true

  우리는 먼저 하나의 그룹을 정의한 다음에 iterator의 인터페이스를 사용했다. 그리고 다음에next () 방법을 호출하면 우리가 한 번 호출하면 하나의 값을 출력할 수 있다. done는false의 대표로 반복이 끝나지 않았고, 마지막에 반복이 끝나면true가 된다.
   그러면 우리가iterator를 어떻게 사용자 정의하여 우리가 정의한 데이터 구조를 분석합니까?다음 코드를 보시오.
let obj = {
   start: [1,2,3],
   end: [4,5,6],
   [Symbol.iterator](){
      let self = this;
      let index = 0;
      let arr = self.strat.concat(self.end);
      let len = arr.length;
      return {
         next() {
             if (index < len) {
                return {
                   value: arr[index++],
                   done: false
                }
             } else {
                return {
                   value: arr[index++],
                   done: true
                }
             }
         }
      }
   }
}

  그러므로 앞으로 우리는 사용자 정의로 자신의 데이터 구조를 해석하고 싶으면 스스로 정의할 수 있다.

2. for...of...


   이것이 바로 위의iterator의 실현이다. 매우 간단하다. 여기서 더 이상 말하지 않고 여러분들이 직접 알아보실 수 있다.

좋은 웹페이지 즐겨찾기