今天遇到了一點有意思的事情,同事用了map出了點問題,頁面的路由重新進行了載入,所以今天我們說一些map foreach for的區別
遍歷效能上來說for迴圈遍歷 < for…of遍歷 < foreach遍歷 < for…in遍歷 < map遍歷
1)經典的for迴圈:
for(var i = 0; i < arr.length; i++)
2)for...in
for(var i in arr)
3) foreach
arr.foreach(function(i))
4) map
arr.map(function(i))
5) es6的語法 for...of
for(let i of arr)
foreach 和map的區別:
相同點:
(1)都是迴圈遍歷陣列中每一項
(2)foreach 和 map方法中每次執行匿名函式都支援3個引數:item(當前每一項的值) index(索引值) arr(原陣列)
(3)匿名函式中的this都是指向window
(4)只能遍歷陣列
(5)都不會改變原陣列
區別:map方法:
(1)map方法返回乙個新的陣列,陣列中的元素為原始陣列呼叫函式處理後的值
(2)map方法不會對空的陣列進行檢測,map方法不會改變原始陣列
(3)chrome、safari1.5+、opera都支援,ie9+
var arr = [0,2,4,6,8];
var str = arr.map(function(item,index,arr),this);
console.log(str);//[0,1,2,3,4]
若arr為空陣列,則map方法返回的也是乙個空陣列。
foreach方法
1.foreach方法用來呼叫陣列的每乙個元素,將元素傳給**的函式
2.foreach對於空陣列是不會呼叫**函式的
var arr = [0,2,4,6,8];
var sum = 0;
var str = arr.foreach(function(item,index,arr),this)
console.log(sum);//20
console.log(str); //undefined
無論arr是不是空陣列,foreach返回的都是undefined。這個方法只是將陣列中的每一項作為callback的引數執行一次。
5 2 1 F 和 C 中的多值
5.2.1 f 和 c 中的多值 我們在第三章討論元組時,用 c 實現了乙個 tuple 類,與 f 中的元組有相同的行為。使用元組不是從 c 中的方法中返回多值的通常做法,你仍會發現,以函式方式寫 還是有用的。如果想在 c 中寫這個,而不使用元組,或者為每乙個返回多值的方法宣告乙個新的類,你可能使...
js中onkeydown事件,相容IE和FF
概念 onkeypress onkeyup onkeydown區別 onkeypress 這個事件在使用者按下並放開任何字母數字鍵時發生。系統按鈕 例如,箭頭鍵和功能鍵 無法得到識別。onkeyup 這個事件在使用者放開任何先前按下的鍵盤鍵時發生。onkeydown 這個事件在使用者按下任何鍵盤鍵 ...
F 入門 六 F 中的 for while迴圈
首先我們來看看 f 中基本的 for迴圈編寫方法。for迴圈 for語句 1 for 迴圈變數 表示式 1 to 表示式2 do 表示式3 done for語句 2 for 迴圈變數 in表示式 4 do 表示式5done for語句1有點 c語言的風格。for語句 2就是一般所說的 foreach...