国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

淺析JS中的 map, filter, some, every, forEach, for in, for of 用法總

2024-05-06 15:19:13
字體:
供稿:網(wǎng)友

1.map

有返回值,返回一個(gè)新的數(shù)組,每個(gè)元素為調(diào)用func的結(jié)果。

let list = [1, 2, 3, 4, 5];let other = list.map((d, i) => {  return d * 2;});console.log(other);// print: [2, 4, 6, 8, 10]

2.filter

有返回值,返回一個(gè)符合func條件的元素?cái)?shù)組

let list = [1, 2, 3, 4, 5];let other = list.filter((d, i) => {  return d % 2;});console.log(other);// print: [1, 3, 5]

3.some

返回一個(gè)boolean,判斷是否有元素符合func條件,如果有一個(gè)元素符合func條件,則循環(huán)會(huì)終止。

let list = [1, 2, 3, 4, 5];list.some((d, i) => {  console.log(d, i);  return d > 3;});// print: 1,0 2,1 3,2 4,3// return false

4.every

返回一個(gè)boolean,判斷每個(gè)元素是否符合func條件,有一個(gè)元素不滿足func條件,則循環(huán)終止,返回false。

let list = [1, 2, 3, 4, 5];list.every((d, i) => {  console.log(d, i);  return d < 3;});// print: 1,0 2,1 3,2// return false

5.forEach

沒有返回值,只針對(duì)每個(gè)元素調(diào)用func。

優(yōu)點(diǎn):代碼簡(jiǎn)介。

缺點(diǎn):無(wú)法使用break,return等終止循環(huán)。

let list = [1, 2, 3, 4, 5];let other = [];list.forEach((d, i) => {  other.push(d * 2);});console.log(other);// print: [2, 4, 6, 8, 10]

6.for in

for-in循環(huán)實(shí)際是為循環(huán)”enumerable“對(duì)象而設(shè)計(jì)的,for in也可以循環(huán)數(shù)組,但是不推薦這樣使用,for–in是用來循環(huán)帶有字符串key的對(duì)象的方法。

缺點(diǎn):只能獲得對(duì)象的鍵名,不能直接獲取鍵值。

var obj = {a:1, b:2, c:3};for (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]);}// print: "obj.a = 1" "obj.b = 2" "obj.c = 3"

7.for of

for of為ES6提供,具有iterator接口,就可以用for of循環(huán)遍歷它的成員。也就是說,for of循環(huán)內(nèi)部調(diào)用的是數(shù)據(jù)結(jié)構(gòu)的Symbol.iterator方法。

for of循環(huán)可以使用的范圍包括數(shù)組、Set和Map結(jié)構(gòu)、某些類似數(shù)組的對(duì)象(比如arguments對(duì)象、DOM NodeList對(duì)象)、后文的Generator對(duì)象,以及字符串。

有些數(shù)據(jù)結(jié)構(gòu)是在現(xiàn)有數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,計(jì)算生成的。比如,ES6的數(shù)組、Set、Map都部署了以下三個(gè)方法,調(diào)用后都返回遍歷器對(duì)象。

entries

entries() 返回一個(gè)遍歷器對(duì)象,用來遍歷[鍵名, 鍵值]組成的數(shù)組。對(duì)于數(shù)組,鍵名就是索引值;對(duì)于Set,鍵名與鍵值相同。Map結(jié)構(gòu)的iterator接口,默認(rèn)就是調(diào)用entries方法。

keys

keys() 返回一個(gè)遍歷器對(duì)象,用來遍歷所有的鍵名。

values

values() 返回一個(gè)遍歷器對(duì)象,用來遍歷所有的鍵值。

這三個(gè)方法調(diào)用后生成的遍歷器對(duì)象,所遍歷的都是計(jì)算生成的數(shù)據(jù)結(jié)構(gòu)。

// 字符串let str = "hello";for (let s of str) { console.log(s); // h e l l o}// 遍歷數(shù)組let list = [1, 2, 3, 4, 5];for (let e of list) {  console.log(e);}// print: 1 2 3 4 5// 遍歷對(duì)象obj = {a:1, b:2, c:3};for (let key of Object.keys(obj)) { console.log(key, obj[key]);}// print: a 1 b 2 c 3            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 涪陵区| 社会| 阿鲁科尔沁旗| 库伦旗| 新晃| 青河县| 连州市| 清流县| 莱阳市| 江孜县| 珠海市| 斗六市| 若尔盖县| 西丰县| 白银市| 合川市| 信宜市| 盐池县| 海伦市| 砚山县| 昌乐县| 永安市| 南阳市| 临沧市| 临清市| 米易县| 宜兰县| 怀化市| 巫溪县| 汉源县| 唐河县| 合作市| 突泉县| 武陟县| 林口县| 当雄县| 海宁市| 犍为县| 湖州市| 班玛县| 临西县|