成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

FE.ES-(for...of) 可迭代對象Range(n) in JS

miracledan / 2164人閱讀

摘要:可迭代對象瀏覽器需支持注意返回一個實時的返回一個靜態(tài)的語句在可迭代對象上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句。與的區(qū)別語句以原始插入順序迭代對象的可枚舉屬性。語句遍歷可迭代對象定義要迭代的數(shù)據(jù)。

可迭代對象

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 返回一個靜態(tài)的 NodeList

for...of

for...of語句在可迭代對象上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句。
for...of還可以迭代生成器,生成器不應該重用。

for...of與for...in的區(qū)別

for...in 語句以原始插入順序迭代對象的可枚舉屬性。
for...of 語句遍歷可迭代對象定義要迭代的數(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

Range(n) in JS

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()]);

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/102638.html

相關文章

  • ES6 Features系列:GeneratorFunction介紹

    摘要:沒有顯示顯示顯示關鍵字迭代器生成器用于馬上退出代碼塊并保留現(xiàn)場,當執(zhí)行迭代器的函數(shù)時,則能從退出點恢復現(xiàn)場并繼續(xù)執(zhí)行下去。迭代器迭代器是一個擁有方法和方法的對象,通過函數(shù)不斷執(zhí)行以關鍵字分割的代碼段,通過函數(shù)令分割的代碼段拋出異常。 一、前言                            第一次看koajs的示例時,發(fā)現(xiàn)該語句 function *(next){..........

    golden_hamster 評論0 收藏0
  • python基礎教程:內(nèi)置函數(shù)(一)

    摘要:我們把這些內(nèi)置函數(shù)類型分成幾類進行介紹。實參的合法范圍是到進制表示是。產(chǎn)生一個將應用于迭代器中所有元素并返回結果的迭代器。內(nèi)置的函數(shù)保證穩(wěn)定。 Python解釋器內(nèi)置了很多函數(shù)和類型,可以隨時隨地在編程中使用。其實,我們在前面的學習中已經(jīng)接觸過好多內(nèi)置函數(shù)。 showImg(https://segmentfault.com/img/remote/1460000019177948); 這...

    snifes 評論0 收藏0
  • Python 迭代器、生成器和列表解析

    摘要:迭代器迭代器在版本中被加入它為類序列對象提供了一個類序列的接口。其中方法返回迭代器對象本身方法返回容器的下一個元素,在結尾時引發(fā)異常。迭代器協(xié)議迭代器協(xié)議即實現(xiàn)與方法。 迭代器 迭代器在 Python 2.2 版本中被加入, 它為類序列對象提供了一個類序列的接口。 Python 的迭代無縫地支持序列對象, 而且它還允許迭代非序列類型, 包括用戶定義的對象。即迭代器可以迭代不是序列但表現(xiàn)...

    dreamGong 評論0 收藏0
  • python迭代器與生成器小結

    摘要:迭代器要說生成器,必須首先說迭代器區(qū)分與講到迭代器,就需要區(qū)別幾個概念看著都差不多,其實不然。比如常見就是與分離實現(xiàn)的本身是可迭代對象,但不是迭代器,類似與但是又不同。 2016.3.10關于例子解釋的補充更新 源自我的博客 例子 老規(guī)矩,先上一個代碼: def add(s, x): return s + x def gen(): for i in range(...

    hellowoody 評論0 收藏0
  • [python] 關于 python 的一些高級特性

    摘要:開始本文主要記錄廖大教程中高級特性這一節(jié)的內(nèi)容,并寫下我的一些理解。廖大的教程中是這樣說的函數(shù)是順序執(zhí)行,遇到語句或者最后一行函數(shù)語句就返回。 前言 用 python 差不多半年多了,從去年暑假開始接觸,從開始的懵逼,到寫了一些小爬蟲總算入門之后,許多作業(yè)也是能用 python 就用 python,基本拋棄了 C++。但是還是有些過于急躁了,能夠寫一些簡短的代碼,但是對于 python...

    Pines_Cheng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<