Heim  >  Artikel  >  Web-Frontend  >  Codebeispiel-Erklärung der Iterator-Schnittstelle in ES6

Codebeispiel-Erklärung der Iterator-Schnittstelle in ES6

不言
不言nach vorne
2018-10-29 15:18:201958Durchsuche

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:循环没有结束
}

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
    }
}








【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:循环没有结束
}

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
    }
}
 


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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen