ES5為數組定義了5個迭代方法。每種方法都接收兩個參數。要在每一項上運行的函數和(可選的)運行該函數的作用域對象--影響this的值。//其中(可選的)這個參數暫時未遇到過。
其中,函數都接收三個參數(數組中的每一項、每一項的索引值、數組對象本身)。
下面是5中方法的介紹:
every() : 對數組中的每一項執行函數,如果每一項都返回 true ,則該方法返回 true。
some(): 對數組中的每一項執行函數,只要有一項返回了 true ,則該方法返回 true。
filter(): 對數組中的每一項執行函數,把里面返回 true 的項,組成一個數組返回。
forEach() 對數組中的每一項執行函數,沒有返回值。類似于for循環。
map() 對數組中的每一項執行函數,返回(處理后的)每一項。
以上5種方法,都不會改變數組本身。
forEach和map的比較:
var arr = [1,2,3,4,5]; //every() filter() some() forEach() map() var res = arr.every(function(i,index,o){ return i>2; }); console.log(arr); //[1,2,3,4,5] console.log(res); //false var some = arr.some(function (i, k, l) { return i>2; }); console.log(arr);//[1,2,3,4,5] console.log(some);//true var filter = arr.filter(function (i, k, l) { return i>2; }); console.log(arr);//[1,2,3,4,5] console.log(filter);//[3,4,5] var forEach = arr.forEach(function (i, k, l) { return i>2; }); console.log(arr);//[1,2,3,4,5] console.log(forEach);//undefined var map = arr.map(function (i, k, l) { return i>2; }); console.log(arr);//[1,2,3,4,5] console.log(map);//[false,false,true,true,true]以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答