星期一, 6月 13, 2011

HTML5新增的陣列方法

var arr = [1, 2, 3, 4, 5];

arr.every(callback[, thisArg])
對arr內的每個值執行callback,若其中有一個結果回傳false,則函數執行結果為false
thisArg : 做為callback物件的參考
callback: function (value, index, array){ ... }

arr.some(callback[, thisArg])
對arr內的每個值執行callback,若其中有一個結果回傳true,則函數執行結果為true
thisArg : 做為callback物件的參考
callback: function (value, index, array){ ... }

arr.forEach(callback[, thisArg])
對arr內的每個值執行callback
thisArg : 做為callback物件的參考
callback: function (value, index, array){ ... }

Array.isArray(arr)
判斷arr是否為陣列

arr.indexOf(obj[, index])
從arr的索引為index(default=0)的地方開始向右搜索obj,找到傳回obj在陣列的索引,反之則傳回-1

arr.lastIndexOf(obj[, index])
從arr的索引為index(default=陣列長度-1)的地方開始向左搜索obj,找到傳回obj在陣列的索引,反之則傳回-1

arr.map(callback[, thisArg])
函數的回傳值是將arr內的每個值執行callback後,所得的回傳值陣列
callback: function (value, index, array){ ... }

arr.filter(callback[, thisArg])
函數的回傳值是將arr內的每個值執行callback,保留callback回傳true的該值所得的陣列
callback: function (value, index, array){ ... }

arr.reduce(callback[, initValue])
函數將由左至右依序將arr內的值傳入callback,preValue是上一個callback的回傳值,curValue則是目前的值。
函數的執行結果是arr最左邊的值呼叫callback的回傳值
initValue: 若是最右邊的值呼叫callback的時候,preValue=initValue
callback : function (preValue, curValue, currentIndex, array){ ... }

arr.reduceRight(callback[, initValue])
函數將由右至左依序將arr內的值傳入callback,preValue是上一個callback的回傳值,curValue則是目前的值。
函數的執行結果是arr最右邊的值呼叫callback的回傳值
initValue: 若是最左邊的值呼叫callback的時候,preValue=initValue
callback : function (preValue, curValue, currentIndex, array){ ... }