最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript之iterable_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年06月29日 10:40:54   作者:liaoxuefeng  
這篇文章主要介紹了JavaScript之iterable,遍歷Array可以采用下標(biāo)循環(huán),遍歷Map和Set就無法使用下標(biāo)。為了統(tǒng)一集合類型,ES6標(biāo)準(zhǔn)引入了新的iterable類型,Array、Map和Set都屬于iterable類型

遍歷Array可以采用下標(biāo)循環(huán),遍歷Map和Set就無法使用下標(biāo)。為了統(tǒng)一集合類型,ES6標(biāo)準(zhǔn)引入了新的iterable類型,Array、Map和Set都屬于iterable類型。

具有iterable類型的集合可以通過新的for ... of循環(huán)來遍歷。

for ... of循環(huán)是ES6引入的新的語法,請(qǐng)測(cè)試你的瀏覽器是否支持:

'use strict';
var a = [1, 2, 3];
for (var x of a) {
}
alert('你的瀏覽器支持for ... of');

for ... of循環(huán)遍歷集合,用法如下:

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍歷Array
  alert(x);
}
for (var x of s) { // 遍歷Set
  alert(x);
}
for (var x of m) { // 遍歷Map
  alert(x[0] + '=' + x[1]);
}

你可能會(huì)有疑問,for ... of循環(huán)和for ... in循環(huán)有何區(qū)別?

for ... in循環(huán)由于歷史遺留問題,它遍歷的實(shí)際上是對(duì)象的屬性名稱。一個(gè)Array數(shù)組實(shí)際上也是一個(gè)對(duì)象,它的每個(gè)元素的索引被視為一個(gè)屬性。

當(dāng)我們手動(dòng)給Array對(duì)象添加了額外的屬性后,for ... in循環(huán)將帶來意想不到的意外效果:

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
  alert(x); // '0', '1', '2', 'name'
}
for ... in循環(huán)將把name包括在內(nèi),但Array的length屬性卻不包括在內(nèi)。
for ... of循環(huán)則完全修復(fù)了這些問題,它只循環(huán)集合本身的元素:
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
  alert(x); // 'A', 'B', 'C'
}

這就是為什么要引入新的for ... of循環(huán)。

然而,更好的方式是直接使用iterable內(nèi)置的forEach方法,它接收一個(gè)函數(shù),每次迭代就自動(dòng)回調(diào)該函數(shù)。以Array為例:

var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
  // element: 指向當(dāng)前元素的值
  // index: 指向當(dāng)前索引
  // array: 指向Array對(duì)象本身
  alert(element);
});

注意,forEach()方法是ES5.1標(biāo)準(zhǔn)引入的,你需要測(cè)試瀏覽器是否支持。

SetArray類似,但Set沒有索引,因此回調(diào)函數(shù)的前兩個(gè)參數(shù)都是元素本身:

var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
  alert(element);
});

Map的回調(diào)函數(shù)參數(shù)依次為value、keymap本身:

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
  alert(value);
});

如果對(duì)某些參數(shù)不感興趣,由于JavaScript的函數(shù)調(diào)用不要求參數(shù)必須一致,因此可以忽略它們。例如,只需要獲得Arrayelement

var a = ['A', 'B', 'C'];
a.forEach(function (element) {
  alert(element);
});

相關(guān)文章

  • 防止video視頻被下載的處理方法匯總

    防止video視頻被下載的處理方法匯總

    這篇文章主要介紹了防止video視頻被下載的處理方法匯總,本文給大家介紹了多種方法幫助大家解決防止video視頻被下載的問題,補(bǔ)充介紹了解決video標(biāo)簽視頻禁止下載方法,感興趣的朋友一起看看吧
    2024-02-02
  • 鍵盤上下鍵移動(dòng)選擇table表格行的js代碼

    鍵盤上下鍵移動(dòng)選擇table表格行的js代碼

    通過鍵盤上的上下鍵可以選擇表格行的實(shí)現(xiàn)效果代碼。思路不錯(cuò),需要的朋友可以參考下。
    2009-12-12
  • Bootstrap Multiselect 常用組件實(shí)現(xiàn)代碼

    Bootstrap Multiselect 常用組件實(shí)現(xiàn)代碼

    bootstrap-multiselect插件是一款基于bootstrap的下拉框美化插件,我們一般用來請(qǐng)求后臺(tái)返回具有l(wèi)abel和text對(duì)象的json數(shù)組即可渲染。接下來通過本文給大家分享Bootstrap Multiselect 常用組件實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧
    2017-07-07
  • js控制input輸入字符解析

    js控制input輸入字符解析

    本篇文章主要是對(duì)js控制input輸入字符方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-12-12
  • 詳解Howler.js Web音頻播放終極解決方案

    詳解Howler.js Web音頻播放終極解決方案

    這篇文章主要介紹了詳解Howler.js Web音頻播放終極解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • javascript變量聲明實(shí)例分析

    javascript變量聲明實(shí)例分析

    這篇文章主要介紹了javascript變量聲明,實(shí)例分析了javascript變量聲明的相關(guān)使用技巧,需要的朋友可以參考下
    2015-04-04
  • 微信小程序?qū)崿F(xiàn)頂部搜索框

    微信小程序?qū)崿F(xiàn)頂部搜索框

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)頂部搜索框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Select標(biāo)簽下拉列表二級(jí)聯(lián)動(dòng)級(jí)聯(lián)實(shí)例代碼

    Select標(biāo)簽下拉列表二級(jí)聯(lián)動(dòng)級(jí)聯(lián)實(shí)例代碼

    這篇文章主要介紹了Select標(biāo)簽下拉列表二級(jí)聯(lián)動(dòng)級(jí)聯(lián)實(shí)例代碼,需要的朋友可以參考下
    2014-02-02
  • javascript調(diào)試說明

    javascript調(diào)試說明

    自從AJAX崛起后,javascript的程序越來越龐大,不得不考慮到各種測(cè)試。
    2010-06-06
  • TypeScript中函數(shù)重載寫法

    TypeScript中函數(shù)重載寫法

    這篇文章主要介紹了TypeScript中函數(shù)重載寫法,TypeScript 提供了函數(shù)重載功能,下面文章圍繞TypeScript函數(shù)重載續(xù)航管資料展開內(nèi)容,具有一定得參考價(jià)值,需要的朋友可以參考一下
    2021-12-12

最新評(píng)論

江西省| 吴旗县| 富民县| 广丰县| 南和县| 丘北县| 商河县| 镇原县| 来安县| 长春市| 垦利县| 余干县| 洪洞县| 民丰县| 河西区| 北海市| 东源县| 咸宁市| 琼海市| 丰镇市| 微博| 孝义市| 云阳县| 磐安县| 襄樊市| 长沙县| 桑植县| 泗水县| 贵州省| 隆德县| 桂阳县| 丰台区| 壤塘县| 边坝县| 上饶县| 凉山| 荆州市| 华池县| 安乡县| 容城县| 望谟县|