成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

js數(shù)組循環(huán)的幾種方式總結(jié)

rubyshen / 1821人閱讀

摘要:循環(huán)最基本的循環(huán)方式,不多說(shuō)。就是這循環(huán)循環(huán)是用來(lái)遍歷對(duì)象的。輸出循環(huán)都是新增數(shù)組的方法。循環(huán)數(shù)組指的的就是數(shù)組每一項(xiàng)的值??偨Y(jié)以上就是常用的幾種循環(huán)總結(jié),很多細(xì)節(jié),原理之類的沒有寫。

前言

只描述了一些最基本的用法,和一些可能遇到的問(wèn)題。一些細(xì)節(jié),或者特殊寫法之類的,沒有。

1.for循環(huán)

最基本的循環(huán)方式,不多說(shuō)。但是我在其它某篇文章上,聽別人說(shuō),這種最基本的循環(huán)才是速度最快的,效率最高的。(就是這https://www.jb51.net/article/...

for(var i = 0;i<5;i++){
 console.log(i)
}
2.for in循環(huán)

for in循環(huán)是用來(lái)遍歷對(duì)象的。要知道JavaScript對(duì)象的所有屬性都是字符串,不過(guò)屬性對(duì)應(yīng)的值可以是任意數(shù)據(jù)類型。(注意:遍歷時(shí)不僅能讀取對(duì)象自身上面的成員屬性,也能遍歷出對(duì)象的原型屬性)

let obj = {a:1, b:2, c:3};
for (let prop in obj) {    //prop指對(duì)象的屬性名
console.log(prop, obj[prop]);
}
// 輸出:
// a,1
// b,2
// c,3

for in同樣可以用來(lái)循環(huán)數(shù)組,但是不推薦這么做。由于Array也是對(duì)象,而它的每個(gè)元素的索引被視為對(duì)象的屬性,因此,for in循環(huán)可以直接循環(huán)出Array的索引,但得到的是String而不是Number,所以一旦你想用這個(gè)index去進(jìn)行計(jì)算,就會(huì)出錯(cuò)。而且因?yàn)闀?huì)遍歷原型屬性,所以可能得出的結(jié)果不會(huì)是你想要的(具體細(xì)節(jié)不多說(shuō),需要了解的自己查詢,反正很多坑)。雖然可以用hasOwnProperty()方法避免這個(gè)缺陷,但是何必呢,循環(huán)方法那么多,換一個(gè)就是了。

for (var index in myArray) { // 不推薦這樣
console.log(myArray[index]);
}
3. forEach循環(huán)

沒什么好說(shuō)的,看例子。(注意:forEach循環(huán)里面沒辦法用break跳出循環(huán)。而且在IE中無(wú)法實(shí)現(xiàn),需要做兼容處理。)

let arr = ["123","qwewq","sfds"];
myArray.forEach(function (value, index) {
    console.log(value,index);
});
//輸出
//"123",1
//"qwewq",2
//"sfds",3
4.map循環(huán)

forEach、map都是ECMA5新增數(shù)組的方法。map支持return

let arr = ["123","qwewq","sfds"];
arr.map(function(value,index){
    console.log(value,index);
});

//輸出
//"123",1
//"qwewq",2
//"sfds",3
5.for of循環(huán)

作為ES6新增的循環(huán)方法,個(gè)人覺得相當(dāng)好用,而且方便。這個(gè)方法避開了for-in循環(huán)的所有缺陷。而且,它可以正確響應(yīng)break、continue和return語(yǔ)句。

//循環(huán)數(shù)組
let arr = ["123","qwewq","sfds"];
for(let item of arr){
    console.log(item);    //item指的的就是數(shù)組每一項(xiàng)的值。不是索引。
}
//輸出
//"123"
//"qwewq"
//"sfds"

for-of循環(huán)不僅支持?jǐn)?shù)組,還支持大多數(shù)類數(shù)組對(duì)象,例如DOM NodeList對(duì)象。但是for of也有一個(gè)致命傷,就像例子看到的,沒有索引。對(duì),這是優(yōu)點(diǎn)也是缺點(diǎn)。遍歷數(shù)組對(duì)象,直接就是item.屬性(或者item[屬性]),而不用像for循環(huán)那樣arr[index].屬性(arrindex)。但是你有的時(shí)候真的就得用到index。不好意思,只能把數(shù)組轉(zhuǎn)成Map()。但我覺得真的需要用到index,還是換成forEach吧。

//遍歷字符串
let name = "Asher";
for (let char of name){
    console.log(char);         //A s h e r
}

此外,對(duì)于在ES6中新增的兩種類型,Map和Set(如果學(xué)過(guò)Java或者其他有這兩種類型的語(yǔ)言,會(huì)發(fā)現(xiàn)用法幾乎一樣)。for of同樣適用。

let mapArray = new Map();
for (let [key, value] of mapArray) {
   console.log(key,value);
}
//Set集合同理,不列舉了。
總結(jié)

以上就是常用的幾種for循環(huán)總結(jié),很多細(xì)節(jié),原理之類的沒有寫。因?yàn)檫@只是一個(gè)簡(jiǎn)單使用的介紹,不想寫那么多。此外,還有很多像while循環(huán),do-while循環(huán)之類的其它循環(huán)方法,都沒提。因?yàn)楦鶕?jù)我的使用經(jīng)驗(yàn),上面的幾種已經(jīng)可以應(yīng)對(duì)幾乎所有情況了。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/96994.html

相關(guān)文章

  • JS中輕松遍歷對(duì)象屬性幾種方式

    摘要:當(dāng)普通對(duì)象要轉(zhuǎn)換成時(shí)就很有用,因?yàn)榉祷氐母袷脚c構(gòu)造函數(shù)接受的格式完全相同。使用常規(guī)的構(gòu)造函數(shù)可以將一個(gè)二維鍵值對(duì)數(shù)組轉(zhuǎn)換成一個(gè)對(duì)象。在和早期標(biāo)準(zhǔn)中,根本沒有指定屬性的順序。此函數(shù)還可以輕松地將純對(duì)象屬性映射到對(duì)象中。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 自身可枚舉屬性 Object.keys() 方法會(huì)返回一個(gè)...

    isLishude 評(píng)論0 收藏0
  • JavaScript知識(shí)點(diǎn)總結(jié)

    摘要:參與任何數(shù)值計(jì)算的結(jié)構(gòu)都是,而且。。面向人類的理性事物,而不是機(jī)器信號(hào)。達(dá)到無(wú)刷新效果。的工作原理總是指向一個(gè)對(duì)象,具體是運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而非函數(shù)被聲明時(shí)的環(huán)境。原型對(duì)象上有一個(gè)屬性,該屬性指向的就是構(gòu)造函數(shù)。 1.JS面向?qū)ο蟮睦斫?面向?qū)ο蟮娜筇攸c(diǎn):繼承、封裝、多態(tài) 1、JS中通過(guò)prototype實(shí)現(xiàn)原型繼承 2、JS對(duì)象可以通過(guò)對(duì)象冒充,實(shí)現(xiàn)多重繼承, 3...

    sean 評(píng)論0 收藏0
  • js類型檢測(cè)幾種方式盤點(diǎn)

    摘要:開始之前,必須要知道中關(guān)于類型的定義。作為基本類型也返回,因?yàn)樵谥械亩x就是用來(lái)表示一個(gè)空對(duì)象指針。返回值類型總結(jié)一般用來(lái)檢測(cè),無(wú)法正確檢測(cè)基本數(shù)據(jù)類型。但是注意,因?yàn)楹投际穷愋?。返回值類型總結(jié)這也是比較好的返回方式了。 開始之前,必須要知道js中關(guān)于類型的定義。js中有6種基本類型,null,undefined,boolean,string,number,symbol(es6新增的類...

    fantix 評(píng)論0 收藏0
  • javascript幾種常見遍歷數(shù)據(jù)結(jié)構(gòu)的語(yǔ)法

    摘要:接觸這么多年,第一次總結(jié)一下它的遍歷語(yǔ)法。而且你必須借助特定的結(jié)構(gòu)才能遍歷數(shù)據(jù)結(jié)構(gòu)。它的作用是遍歷對(duì)象的鍵名。建議僅在遍歷數(shù)組的時(shí)候使用。另一個(gè)優(yōu)點(diǎn)是,它可以遍歷任何部署了接口的數(shù)據(jù)結(jié)構(gòu),甚至是非的數(shù)據(jù)類型,即自己定義的數(shù)據(jù)結(jié)構(gòu)。 接觸JavaScript這么多年,第一次總結(jié)一下它的遍歷語(yǔ)法。以前我大部分時(shí)間都在老版本的JavaScript下寫代碼,所以大部分時(shí)間都是用for...in...

    kohoh_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<