js中for...in,for...of,forEach,map函數(shù),for循環(huán)遍歷區(qū)別

1.for...in

以原始插入順序遍歷對(duì)象的可枚舉屬性,對(duì)于每個(gè)不同的屬性,語句都會(huì)被執(zhí)行。寫法:for(var variable in obj)。例子: var obj={a:1,c:3,b:2},for(var item in obj){console.log("obj."+item+"="+obj[item])},打印結(jié)果:obj.a=1,obj.c=3,obj.b=2。使用注意:for...in不一定返回的是按一定順序的索引,只能獲取鍵名,不能直接獲取鍵值,因此不應(yīng)該被用來迭代一個(gè)下表很重要的數(shù)組,適合用于遍歷對(duì)象屬性。

2.for...of

es6提供的新語法,可以用來替代數(shù)組原始的forEach方法,使用范圍包括數(shù)組、字符串、類似數(shù)組的對(duì)象(arguments對(duì)象、DOM NodeList對(duì)象)。寫法:for(let variable of obj),例子:const arr=['red','green','blue'];for(letv of arr){console.log(v); // red green blue}使用注意:for...of循環(huán)獲取的是鍵值,如果要獲取索引,可以通過數(shù)組實(shí)例的entries(鍵值對(duì)的索引)方法和keys(鍵名的索引)方法,數(shù)組的遍歷器接口只返回具有數(shù)字索引的屬相,因此不適合用來遍歷對(duì)象。

3.數(shù)組的forEach方法

es5數(shù)組對(duì)象自帶的方法,調(diào)用數(shù)組中的每個(gè)元素,并將每個(gè)元素傳給回調(diào)函數(shù)使用。寫法:[].forEach(function(value,index,array){});使用注意:在第一次調(diào)用回調(diào)函數(shù)之前,數(shù)組中的元素都已經(jīng)是確定的。

4.map()方法返回一個(gè)新數(shù)組,這個(gè)數(shù)組中的元素是原始數(shù)組中的每個(gè)元素調(diào)用回調(diào)函數(shù)之后返回的結(jié)果,按原始數(shù)組元素依次處理數(shù)組中的元素,map方法不會(huì)改變?cè)紨?shù)組。寫法:array.map(function(currentValue,index,arr), thisValue),值得注意的是要記得為每個(gè)元素指定一個(gè)獨(dú)一無二的key

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容