ES6のIteratorインターフェースのコード例解説

不言
リリース: 2018-10-29 15:18:20
転載
1966 人が閲覧しました

この記事の内容は、ES6 の Iterator インターフェイスのコード例を説明するものです。必要な方は参考にしていただければ幸いです。

es6 では、特定のデータ構造 (配列オブジェクト マップ セット) を操作するときに、統一されたメソッドを使用して操作するにはどうすればよいですか?

1 .配列のイテレータのアプリケーション

{
    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。カスタマイズされたイテレータ インターフェイス

{
    // 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 ループ</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 入門 13】:イテレータ

ES6のIteratorインターフェースのコード例解説フロントエンド

es6

javascript

14 回読まれました                                                             読むのに 6 分かかります                                          



#                                                                                 

                                                                                                                                                                                                                                                                                                                                                                                 

#es6 では、特定のデータ構造 (配列オブジェクト マップ セット) を操作する場合、統一されたメソッドで操作するにはどうすればよいですか?1. 配列でのイテレーターの適用

{
    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. カスタマイズされたイテレーター インターフェイス
{
    // 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 class="article fmt article__content">3.for.. .of ループ<br></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のIteratorインターフェースのコード例解説

  • # ##############コメント###                                                                                            時間順に並べ替え

  • 読み込み中...

コメントをさらに表示

以上がES6のIteratorインターフェースのコード例解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート