ES6入門之Iterator和for of

2022-07-27 17:30:18 字數 994 閱讀 8512

遍歷器(iterator)就是這樣一種機制。它是一種介面,為各種不同的資料結構提供統一的訪問機制。任何資料結構只要部署iterator介面,就可以完成遍歷操作(即依次處理該資料結構的所有成員)。

作用:iterator的遍歷過程:

(1)建立乙個指標物件,指向當前資料結構的起始位置。也就是說,遍歷器物件本質上,就是乙個指標物件。

(2)第一次呼叫指標物件的next方法,可以將指標指向資料結構的第乙個成員。

(3)第二次呼叫指標物件的next方法,指標就指向資料結構的第二個成員。

(4)不斷呼叫指標物件的next方法,直到它指向資料結構的結束位置。

var it = makeiterator(['a', 'b']);

it.next()

//it.next() //

function

makeiterator(array) :;}

};}

在es6中,有三類資料結構原生具備iterator介面:陣列、某些類似陣列的物件、set和map結構。

可以覆蓋原生的symbol.iterator方法,達到修改遍歷器行為的目的。

var str = new string("hi");

[...str]

//["h", "i"]

str[symbol.iterator] = function

() ;

} else

; }

},_first:

true

};};

[...str]

//["bye"]

str //

"hi"

for...of迴圈可以使用的範圍包括陣列、set和map結構、某些類似陣列的物件(比如arguments物件、dom nodelist物件)、後文的generator物件,以及字串。

ES6新特性 Iterator和for of迴圈

迭代過程 獲取迭代器 指向當前資料結構的起始位置 通過物件的某些方法返回迭代器物件。如 多次呼叫iterator.next 向下迭代指向下乙個位置。當done為true時遍歷結束。如要重新迭代,需要重新獲取迭代器 從第1步重新開始 string array set map dom元素 開發中。obj...

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s newset 2,3,5,4,5,2,2 map x ...

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s new set 2,3,5,4,5,2,2 map x...