Maison >interface Web >js tutoriel >Exemple de code expliquant l'interface Iterator dans ES6

Exemple de code expliquant l'interface Iterator dans ES6

不言
不言avant
2018-10-29 15:18:202005parcourir

Le contenu de cet article concerne les exemples de code de l'interface Iterator dans ES6. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Dans es6, lors de l'exploitation de certaines structures de données (ensemble de cartes d'objets de tableau), comment opérer dans une méthode unifiée ? L'interface Iterator implémente une telle fonction

1 . Application de l'itérateur dans les tableaux

{
    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.interface d'itérateur personnalisée

{
    // 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.pour...de boucle</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 Getting Started 13】 : Itérateur

Exemple de code expliquant l'interface Iterator dans ES6Front-end

es6

javascript

14 fois en lecture                                                              La lecture prend 6 minutes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

Dans es6, lors de l'exploitation de certaines structures de données (ensemble de cartes d'objets tableau), comment opérer dans une méthode unifiée ? L'interface Iterator implémente une telle fonction


1. Application de l'itérateur dans les tableaux


2.Interface d'itérateur personnalisée

3 .pour. ..de boucle                                                                                       🎜>


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

{
    // 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 Vous pourriez être intéressé<p><strong></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
    }
}

  • Exemple de code expliquant l'interface Iterator dans ES6

  • Commentaires
  •                                                                                Trier par heure


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer