這篇文章主要為大家詳細介紹了JavaScript陣列的5種迭代方法,具有一定的參考價值,有興趣的小夥伴們可以參考一下
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]
以上是JavaScript數組的5種迭代方法實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!