我們先來看兩者之間的相同之處
var arr = ['a','b','c','d'];arr.foreach(function(item,index,arr),123); //這裡的123引數,表示函式中的this指向,可寫可不寫,如果不寫,則this指向window
arr.map(function(item,index,arr),123);
執行之後,可以看出兩者引數沒有任何的區別,除此之外兩者之間還有乙個特性,就是不能停止裡面的遍歷,除非程式報錯,那麼兩者之間的區別在那裡呢???
在於返回值!!!
var a = arr.foreach(function(item,index,arr));
var b = arr.map(function
(item,index,arr));
console.log(a);
//undefined
console.log(b); //
[123,123,123,123]
我們可以利用map的這個特性做哪些事情呢,比如
var b = arr.map(function(item,index,arr));
console.log(b); //["aa", "ba", "ca", "da"]
foreach是es3中推出的方法,map是es5中推出的方法,目前在ie的低版本中都還有一些相容性問題。
js中 forEach 和 map 區別
都是迴圈遍歷陣列中的每一項。foreach 和map 裡面每一次執行匿名函式都支援3個引數 陣列中的當前項item,當前項的索引index,原始陣列input。匿名函式中的this都是指window。只能遍歷陣列。1.foreach 沒有返回值,即返回值為undefined 理論上這個方法是沒有返回...
JS中Map和ForEach的區別
foreach 方法 針對每乙個元素執行提供的函式。map 方法 建立乙個新的陣列,其中每乙個元素由呼叫陣列中的每乙個元素執行提供的函式得來。區別foreach 方法不會返回執行結果,而是undefined。也就是說,foreach 會修改原來的陣列。而map 方法會得到乙個新的陣列並返回。例子製作...
JS中map()與forEach()的用法
相同點 1.都是迴圈遍歷陣列中的每一項 2.每次執行匿名函式都支援三個引數,引數分別為item 當前每一項 index 索引值 arr 原陣列 3.匿名函式中的this都是指向window 4.只能遍歷陣列 不同點 map map方法返回乙個新的陣列,陣列中的元素為原始陣列呼叫函式處理後的值 也就是...