摘要:可迭代對象瀏覽器需支持注意返回一個實時的返回一個靜態的語句在可迭代對象上創建一個迭代循環,調用自定義迭代鉤子,并為每個不同屬性的值執行語句。與的區別語句以原始插入順序迭代對象的可枚舉屬性。語句遍歷可迭代對象定義要迭代的數據。
可迭代對象
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 返回一個實時的 NodeList
document.querySelectorAll 返回一個靜態的 NodeList
for...of語句在可迭代對象上創建一個迭代循環,調用自定義迭代鉤子,并為每個不同屬性的值執行語句。
for...of還可以迭代生成器,生成器不應該重用。
for...in 語句以原始插入順序迭代對象的可枚舉屬性。
for...of 語句遍歷可迭代對象定義要迭代的數據。
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()]);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102638.html
摘要:沒有顯示顯示顯示關鍵字迭代器生成器用于馬上退出代碼塊并保留現場,當執行迭代器的函數時,則能從退出點恢復現場并繼續執行下去。迭代器迭代器是一個擁有方法和方法的對象,通過函數不斷執行以關鍵字分割的代碼段,通過函數令分割的代碼段拋出異常。 一、前言 第一次看koajs的示例時,發現該語句 function *(next){..........
摘要:我們把這些內置函數類型分成幾類進行介紹。實參的合法范圍是到進制表示是。產生一個將應用于迭代器中所有元素并返回結果的迭代器。內置的函數保證穩定。 Python解釋器內置了很多函數和類型,可以隨時隨地在編程中使用。其實,我們在前面的學習中已經接觸過好多內置函數。 showImg(https://segmentfault.com/img/remote/1460000019177948); 這...
摘要:迭代器迭代器在版本中被加入它為類序列對象提供了一個類序列的接口。其中方法返回迭代器對象本身方法返回容器的下一個元素,在結尾時引發異常。迭代器協議迭代器協議即實現與方法。 迭代器 迭代器在 Python 2.2 版本中被加入, 它為類序列對象提供了一個類序列的接口。 Python 的迭代無縫地支持序列對象, 而且它還允許迭代非序列類型, 包括用戶定義的對象。即迭代器可以迭代不是序列但表現...
摘要:迭代器要說生成器,必須首先說迭代器區分與講到迭代器,就需要區別幾個概念看著都差不多,其實不然。比如常見就是與分離實現的本身是可迭代對象,但不是迭代器,類似與但是又不同。 2016.3.10關于例子解釋的補充更新 源自我的博客 例子 老規矩,先上一個代碼: def add(s, x): return s + x def gen(): for i in range(...
摘要:開始本文主要記錄廖大教程中高級特性這一節的內容,并寫下我的一些理解。廖大的教程中是這樣說的函數是順序執行,遇到語句或者最后一行函數語句就返回。 前言 用 python 差不多半年多了,從去年暑假開始接觸,從開始的懵逼,到寫了一些小爬蟲總算入門之后,許多作業也是能用 python 就用 python,基本拋棄了 C++。但是還是有些過于急躁了,能夠寫一些簡短的代碼,但是對于 python...
閱讀 2231·2021-11-22 09:34
閱讀 1342·2021-10-11 10:59
閱讀 4442·2021-09-22 15:56
閱讀 3297·2021-09-22 15:08
閱讀 3411·2019-08-30 14:01
閱讀 782·2019-08-30 11:16
閱讀 1136·2019-08-26 13:51
閱讀 2915·2019-08-26 13:43