JS中有可迭代物件和不可迭代物件。如果物件包含Symbol.iterator()函式,那么它是可迭代的。如果物件不包含此函式,則它是不可迭代的。為什么?此函式回傳迭代器物件。

keys()那么, values(),entries()和之間有什么區別Symbol.iterator()呢?看起來它們都回傳迭代器物件。
uj5u.com熱心網友回復:
entries像,keys和之類的屬性values是為了方便起見。它們允許輕松迭代 Map 實體的內容。另請注意,您發布的影像entries也是該Symbol.iterator屬性的值。
該Symbol.iterator屬性存在,因此代碼如下
for (entry of someMap)
行為將與
for (entry of someMap.entries())
.keys()和.values()方法允許在您只關心鍵或只關心值的情況下迭代 Map 實體的一部分或另一部分。顯然.entries()也可以通過解構賦值或簡單的陣列索引來實作。
最終,對于諸如“為什么語言 x 這樣做?”之類的問題,通常沒有令人滿意的基本答案。或“為什么 API x 這樣做?” 因為它們是由有自己原因的人設計的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497758.html
標籤:javascript 目的 迭代器
上一篇:使用c#列印PDF檔案的每一行
