>  기사  >  웹 프론트엔드  >  es6 트래버서란 무엇입니까?

es6 트래버서란 무엇입니까?

WBOY
WBOY원래의
2022-04-26 11:17:541768검색

es6에서 반복자(Iterator)는 다양한 데이터 구조를 처리하고 다양한 데이터 구조에 대한 통합 액세스 메커니즘을 제공하는 데 사용되는 인터페이스입니다. 데이터 구조가 Iterator 인터페이스를 배포하는 한 순회 작업이 완료될 수 있습니다. traverser는 데이터 구조의 멤버를 특정 순서로 정렬할 수 있습니다.

es6 트래버서란 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.

es6 traverser란 무엇입니까

JavaScript의 원래 '컬렉션'을 나타내는 데이터 구조는 주로 배열(Array)과 객체(Object)인데, ES6에는 Map과 Set이 추가되었습니다. 이러한 방식으로 4개의 데이터 컬렉션이 있으며 사용자는 이를 조합하여 자신의 데이터 구조를 정의할 수 있습니다. 예를 들어 배열의 멤버는 맵이고 맵의 멤버는 개체입니다. 이를 위해서는 다양한 데이터 구조를 모두 처리할 수 있는 통합 인터페이스 메커니즘이 필요합니다.

Iterator는 그러한 메커니즘입니다. 다양한 데이터 구조에 대한 통합 액세스 메커니즘을 제공하는 인터페이스입니다. 모든 데이터 구조가 Iterator 인터페이스를 배포하는 한 순회 작업을 완료할 수 있습니다(즉, 데이터 구조의 모든 멤버를 순서대로 처리).

Iterator는 다양한 데이터 구조, 즉 for...of 루프에 대한 통합 액세스 메커니즘을 제공하는 인터페이스입니다.

모든 데이터 구조는 Iterator 인터페이스를 배포하는 한 순회 작업을 완료할 수 있습니다.

순회자의 역할

  • 은 다양한 데이터 구조에 대한 통합되고 간단한 액세스 인터페이스를 제공합니다.

  • 데이터 구조의 구성원을 특정 순서로 정렬할 수 있습니다.

  • ES6 생성 for...of 루프에 대한 새로운 순회 명령이 도입되었습니다. Iterator 인터페이스는 주로 for...of 소비에 사용됩니다(for of가 순회하려면 순회 인터페이스가 있어야 합니다).

The Iterator

  • 생성의 순회 프로세스 현재 데이터 구조의 시작을 가리키는 포인터 개체입니다. 즉, traverser 객체는 본질적으로 포인터 객체입니다.

  • 포인터 객체의 다음 메소드를 처음 호출할 때 포인터가 데이터 구조의 첫 번째 멤버를 가리킬 수 있습니다.

  • 포인터 객체의 다음 메소드가 두 번째로 호출되면 포인터는 데이터 구조의 두 번째 멤버를 가리킵니다.

  • 데이터 구조의 끝을 가리킬 때까지 포인터 개체의 다음 메서드를 계속 호출합니다.

다음 메소드가 호출될 때마다 데이터 구조의 현재 멤버 정보가 반환됩니다. 특히 value와 done이라는 두 가지 속성을 포함하는 객체를 반환합니다. 그 중 value 속성은 현재 멤버의 값이고, done 속성은 순회가 종료되었는지 여부를 나타내는 Boolean 값입니다.

예제는 다음과 같습니다.

일반적인 구현

    function makeInterator(array){
        let startIndex=0;
        return {
            next:function(){
                return startIndex<array.length?{value:array[startIndex++],done:false}:{value:undefined,done:true}
            }
        }
    }
    let inter=makeInterator([1,2,3,4]);
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());

결과:

es6 트래버서란 무엇입니까?

[관련 권장사항: javascript 비디오 튜토리얼, 웹 프론트엔드]

위 내용은 es6 트래버서란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.