摘要:有返回值,返回一個(gè)符合條件的元素?cái)?shù)組返回一個(gè),判斷是否有元素符合條件,如果有一個(gè)元素符合條件,則循環(huán)會(huì)終止。返回一個(gè)遍歷器對(duì)象,用來(lái)遍歷鍵名鍵值組成的數(shù)組。這三個(gè)方法調(diào)用后生成的遍歷器對(duì)象,所遍歷的都是計(jì)算生成的數(shù)據(jù)結(jié)構(gòu)。
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 false4.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 false5.forEach
沒(méi)有返回值,只針對(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是用來(lái)循環(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)遍歷它的成員。也就是說(shuō),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() 返回一個(gè)遍歷器對(duì)象,用來(lái)遍歷[鍵名, 鍵值]組成的數(shù)組。對(duì)于數(shù)組,鍵名就是索引值;對(duì)于Set,鍵名與鍵值相同。Map結(jié)構(gòu)的iterator接口,默認(rèn)就是調(diào)用entries方法。
keyskeys() 返回一個(gè)遍歷器對(duì)象,用來(lái)遍歷所有的鍵名。
valuesvalues() 返回一個(gè)遍歷器對(duì)象,用來(lái)遍歷所有的鍵值。
這三個(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 說(shuō)明:對(duì)于普通的對(duì)象,for...in循環(huán)可以遍歷鍵名,for...of循環(huán)會(huì)報(bào)錯(cuò)。 一種解決方法是,使用Object.keys方法將對(duì)象的鍵名生成一個(gè)數(shù)組,然后遍歷這個(gè)數(shù)組。 // entries let arr = ["a", "b", "c"]; for (let pair of arr.entries()) { console.log(pair); } // [0, "a"] // [1, "b"] // [2, "c"]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/82238.html
摘要:在中為新增了幾個(gè)方法,,,,,也就是一共有這么多方法了。剛開(kāi)始接觸這些倒也記得不是很清楚,在此紀(jì)錄一下以加深影響。我主要從兩個(gè)角度來(lái)理解和記憶吧,一個(gè)是的使用,一個(gè)是內(nèi)部實(shí)現(xiàn)。 JS在1.6中為Array新增了幾個(gè)方法map(),filter(),some(),every(),forEach(),也就是一共有這么多方法了。 剛開(kāi)始接觸這些倒也記得不是很清楚,在此紀(jì)錄一下以加深影響。我主...
摘要:循環(huán)方法方法不改變?cè)瓟?shù)組方法會(huì)給原數(shù)組中的每個(gè)元素都按順序調(diào)用一次函數(shù)。篩選出過(guò)濾出數(shù)組中符合條件的項(xiàng)組成新數(shù)組代碼方法方法為數(shù)組中的每個(gè)元素執(zhí)行一次函數(shù),直到它找到一個(gè)使返回表示可轉(zhuǎn)換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發(fā)展至今已經(jīng)發(fā)展出多種數(shù)組的循環(huán)遍...
摘要:如圖遍歷數(shù)組遍歷數(shù)組元素并以某種方式處理每個(gè)元素是一個(gè)常見(jiàn)的操作。如圖不過(guò),里的功能比較強(qiáng)大,可以遍歷而且返回值是的則被省略掉總結(jié)遍歷對(duì)象,遍歷出來(lái)的是鍵名,而不是鍵值,參數(shù)必須是對(duì)象。 可能是由于職業(yè)的關(guān)系,下班之后完全不想Open PC,但很多知識(shí)點(diǎn)有必要自己做個(gè)小小總結(jié)。本人之前對(duì)原生Array和Object完全沒(méi)概念。 遍歷對(duì)象的方法: Object.keys(Object)...
摘要:關(guān)于循環(huán)遍歷寫下這篇文章的目的,主要是想總結(jié)一下關(guān)于對(duì)于集合對(duì)象遍歷的方式方法,以及在實(shí)際應(yīng)用場(chǎng)景中怎樣去使用它們。的作用主要是去遍歷對(duì)象的可枚舉屬性。例如索引,數(shù)值打印結(jié)果為當(dāng)?shù)诙?xiàng)不滿足條件式跳出循環(huán),返回。 關(guān)于JS循環(huán)遍歷 寫下這篇文章的目的,主要是想總結(jié)一下關(guān)于JS對(duì)于集合對(duì)象遍歷的方式方法,以及在實(shí)際應(yīng)用場(chǎng)景中怎樣去使用它們。本文會(huì)主要介紹:while,for,forEac...
摘要:修復(fù)兼容等新方法。在第版時(shí),被添加進(jìn)標(biāo)準(zhǔn)因此在某些實(shí)現(xiàn)環(huán)境中不被支持。是在最近的標(biāo)準(zhǔn)中新添加的方法所以一些舊版本的瀏覽器可能沒(méi)有實(shí)現(xiàn)該方法。算法假定和擁有它們的初始值。 修復(fù)IE兼容forEach、indexOf、filter、getComputedStyle等新方法。補(bǔ)充:此文是從這里搜集來(lái)的developer.mozilla.org,只是個(gè)人做個(gè)筆記,為了方便以后對(duì)JSLite萬(wàn)一...
閱讀 2866·2021-09-23 11:44
閱讀 1733·2021-09-13 10:24
閱讀 2711·2021-09-08 09:36
閱讀 1295·2019-08-30 15:54
閱讀 2318·2019-08-30 13:54
閱讀 3379·2019-08-30 10:57
閱讀 1928·2019-08-29 18:43
閱讀 3722·2019-08-29 15:10