Heim > Web-Frontend > js-Tutorial > Hauptteil

Codebeispiel-Erklärung der Iterator-Schnittstelle in ES6

不言
Freigeben: 2018-10-29 15:18:20
nach vorne
1979 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit den Codebeispielen der Iterator-Schnittstelle in ES6. Ich hoffe, dass er für Freunde hilfreich ist.

Wie kann man in es6 beim Betrieb bestimmter Datenstrukturen (Array-Objektkartensatz) mit einer einheitlichen Methode arbeiten? Die Iterator-Schnittstelle implementiert eine solche Funktion

1 . Anwendung von Iterator in Arrays

{
    let arr = ['hello', 'world'];
    // 数组内部实现了iterator接口,所以直接调用[Symbol.iterator]()
    let map = arr[Symbol.iterator]();
    console.log(map.next()); // {value: "hello", done: false}
    console.log(map.next()); // {value: "world", done: false}
    console.log(map.next()); // {value: undefined, done: true}
    // value 表示数组元素,done表示循环是否有下一步状态,true:没有下一步了,false:循环没有结束
}
Nach dem Login kopieren
Nach dem Login kopieren

2. Angepasste Iterator-Schnittstelle

{
    // object没有内置iterator接口,自定义iterator接口,让obj也可以使用for...of
    let obj = {
        start: [1,2,3],
        end: [4,5,6],
        // 声明iterator接口方法
        [Symbol.iterator]() {
            // 先遍历start,再遍历end
            let arr = this.start.concat(this.end);
            let index = 0;
            // 返回next()
            return {
                next() {
                    if (index <p><strong>3. for...of-Schleife</strong> </p> <pre class="brush:php;toolbar:false">{
    // 数组内部实现了iterator接口,所以可以直接使用for...of循环
    let arr = ['hello', 'world'];
    for (let value of arr) {
        console.log(value); // hello world
    }
}
Nach dem Login kopieren








【ES6 Erste Schritte 13】: IteratorCodebeispiel-Erklärung der Iterator-Schnittstelle in ES6

es6

Javascript

Wie kann man in es6 beim Betrieb bestimmter Datenstrukturen (Array-Objektkartensatz) mit einer einheitlichen Methode arbeiten? Die Iterator-Schnittstelle implementiert eine solche Funktion


1. Anwendung von Iterator in Arrays


{
    let arr = ['hello', 'world'];
    // 数组内部实现了iterator接口,所以直接调用[Symbol.iterator]()
    let map = arr[Symbol.iterator]();
    console.log(map.next()); // {value: "hello", done: false}
    console.log(map.next()); // {value: "world", done: false}
    console.log(map.next()); // {value: undefined, done: true}
    // value 表示数组元素,done表示循环是否有下一步状态,true:没有下一步了,false:循环没有结束
}
Nach dem Login kopieren
Nach dem Login kopieren

2. Angepasste Iterator-Schnittstelle

{
    // object没有内置iterator接口,自定义iterator接口,让obj也可以使用for...of
    let obj = {
        start: [1,2,3],
        end: [4,5,6],
        // 声明iterator接口方法
        [Symbol.iterator]() {
            // 先遍历start,再遍历end
            let arr = this.start.concat(this.end);
            let index = 0;
            // 返回next()
            return {
                next() {
                    if (index <span class="stream__item-zan-number"></span>3.for.. .of-Schleife <p></p><pre class="brush:php;toolbar:false">{
    // 数组内部实现了iterator接口,所以可以直接使用for...of循环
    let arr = ['hello', 'world'];
    for (let value of arr) {
        console.log(value); // hello world
    }
}
Nach dem Login kopieren
 


Bericht

  • Das könnte Sie interessieren

    Codebeispiel-Erklärung der Iterator-Schnittstelle in ES6

  •                                                                             Nach Zeit sortieren


Laden...

Weitere Kommentare anzeigen

Das obige ist der detaillierte Inhalt vonCodebeispiel-Erklärung der Iterator-Schnittstelle in ES6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage