摘要:可迭代對(duì)象瀏覽器需支持注意返回一個(gè)實(shí)時(shí)的返回一個(gè)靜態(tài)的語句在可迭代對(duì)象上創(chuàng)建一個(gè)迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個(gè)不同屬性的值執(zhí)行語句。與的區(qū)別語句以原始插入順序迭代對(duì)象的可枚舉屬性。語句遍歷可迭代對(duì)象定義要迭代的數(shù)據(jù)。
可迭代對(duì)象
Array [10, 20, 30]
String "boo"
TypedArrayc new Uint8Array([0x00, 0xff])
Map new Map([["a", 1], ["b", 2], ["c", 3]])
Set new Set([1, 1, 2, 2, 3, 3])
arguments (function() {for (let arg of arguments) console.log(arg)})(1, 2, 3)
Nodelist document.querySelectorAll("article > p")( 瀏覽器需支持 Nodelist [Symbol.iterator] )
[注意]
document.getElementById 返回一個(gè)實(shí)時(shí)的 NodeList
document.querySelectorAll 返回一個(gè)靜態(tài)的 NodeList
for...of語句在可迭代對(duì)象上創(chuàng)建一個(gè)迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個(gè)不同屬性的值執(zhí)行語句。
for...of還可以迭代生成器,生成器不應(yīng)該重用。
for...in 語句以原始插入順序迭代對(duì)象的可枚舉屬性。
for...of 語句遍歷可迭代對(duì)象定義要迭代的數(shù)據(jù)。
Object.prototype.objCustom = function() {} Array.prototype.arrCustom = function() {} let iterable = [3, 5, 7] iterable.foo = "hello" for (let i in iterable){ console.log(i) // logs 0, 1, 2, "foo", "arrCustom", "objCustom" if (iterable.hasOwnProperty(i)) console.log(i) // logs 0, 1, 2, "foo" } for (let i of iterable) console.log(i) // logs 3, 5, 7終止迭代
break,return throw
[注意] Array.forEach 不能 break
https://stackoverflow.com/que...
Numbers
[...Array(5).keys()]; => [0, 1, 2, 3, 4]
Character iteration
String.fromCharCode( ...[...Array("D".charCodeAt(0) - "A".charCodeAt(0) + 1).keys()] .map(i => i + "A".charCodeAt(0))); => "ABCD"
Iteration
for (const x of Array(5).keys()) { console.log(x, String.fromCharCode("A".charCodeAt(0) + x)); } => 0,"A" 1,"B" 2,"C" 3,"D" 4,"E"
As functions
function range(size, startAt = 0) { return [...Array(size).keys()].map(i => i + startAt); } function characterRange(startChar, endChar) { return String.fromCharCode(...range(endChar.charCodeAt(0) - startChar.charCodeAt(0), startChar.charCodeAt(0))) }
As typed functions
function range(size:number, startAt:number = 0):ReadonlyArray{ return [...Array(size).keys()].map(i => i + startAt); } function characterRange(startChar:string, endChar:string):ReadonlyArray { return String.fromCharCode(...range(endChar.charCodeAt(0) - startChar.charCodeAt(0), startChar.charCodeAt(0))) }
lodash.js _.range() function
_.range(10); => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] _.range(1, 11); => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] _.range(0, 30, 5); => [0, 5, 10, 15, 20, 25] _.range(0, -10, -1); => [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] String.fromCharCode(..._.range("A".charCodeAt(0), "D".charCodeAt(0) + 1)); => "ABCD"
Old non es6 browsers without a library:
Array.apply(null, Array(5)).map(function (_, i) {return i;}); => [0, 1, 2, 3, 4] console.log([...Array(5).keys()]);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/102638.html
摘要:沒有顯示顯示顯示關(guān)鍵字迭代器生成器用于馬上退出代碼塊并保留現(xiàn)場(chǎng),當(dāng)執(zhí)行迭代器的函數(shù)時(shí),則能從退出點(diǎn)恢復(fù)現(xiàn)場(chǎng)并繼續(xù)執(zhí)行下去。迭代器迭代器是一個(gè)擁有方法和方法的對(duì)象,通過函數(shù)不斷執(zhí)行以關(guān)鍵字分割的代碼段,通過函數(shù)令分割的代碼段拋出異常。 一、前言 第一次看koajs的示例時(shí),發(fā)現(xiàn)該語句 function *(next){..........
摘要:我們把這些內(nèi)置函數(shù)類型分成幾類進(jìn)行介紹。實(shí)參的合法范圍是到進(jìn)制表示是。產(chǎn)生一個(gè)將應(yīng)用于迭代器中所有元素并返回結(jié)果的迭代器。內(nèi)置的函數(shù)保證穩(wěn)定。 Python解釋器內(nèi)置了很多函數(shù)和類型,可以隨時(shí)隨地在編程中使用。其實(shí),我們?cè)谇懊娴膶W(xué)習(xí)中已經(jīng)接觸過好多內(nèi)置函數(shù)。 showImg(https://segmentfault.com/img/remote/1460000019177948); 這...
摘要:迭代器迭代器在版本中被加入它為類序列對(duì)象提供了一個(gè)類序列的接口。其中方法返回迭代器對(duì)象本身方法返回容器的下一個(gè)元素,在結(jié)尾時(shí)引發(fā)異常。迭代器協(xié)議迭代器協(xié)議即實(shí)現(xiàn)與方法。 迭代器 迭代器在 Python 2.2 版本中被加入, 它為類序列對(duì)象提供了一個(gè)類序列的接口。 Python 的迭代無縫地支持序列對(duì)象, 而且它還允許迭代非序列類型, 包括用戶定義的對(duì)象。即迭代器可以迭代不是序列但表現(xiàn)...
摘要:迭代器要說生成器,必須首先說迭代器區(qū)分與講到迭代器,就需要區(qū)別幾個(gè)概念看著都差不多,其實(shí)不然。比如常見就是與分離實(shí)現(xiàn)的本身是可迭代對(duì)象,但不是迭代器,類似與但是又不同。 2016.3.10關(guān)于例子解釋的補(bǔ)充更新 源自我的博客 例子 老規(guī)矩,先上一個(gè)代碼: def add(s, x): return s + x def gen(): for i in range(...
摘要:開始本文主要記錄廖大教程中高級(jí)特性這一節(jié)的內(nèi)容,并寫下我的一些理解。廖大的教程中是這樣說的函數(shù)是順序執(zhí)行,遇到語句或者最后一行函數(shù)語句就返回。 前言 用 python 差不多半年多了,從去年暑假開始接觸,從開始的懵逼,到寫了一些小爬蟲總算入門之后,許多作業(yè)也是能用 python 就用 python,基本拋棄了 C++。但是還是有些過于急躁了,能夠?qū)懸恍┖?jiǎn)短的代碼,但是對(duì)于 python...
閱讀 2279·2021-11-22 09:34
閱讀 1411·2021-10-11 10:59
閱讀 4526·2021-09-22 15:56
閱讀 3431·2021-09-22 15:08
閱讀 3470·2019-08-30 14:01
閱讀 852·2019-08-30 11:16
閱讀 1182·2019-08-26 13:51
閱讀 2969·2019-08-26 13:43