2008年12月7日

Array:重複方法

Array | 特徵 | 變動方法 | 唯讀方法 | 重複方法

重複方法的參數包括一個回呼函式;及一個選擇性的物件,作為回呼函式中的 this 物件。如果沒有設定物件參數,則用與回呼函式連結的全域(global)物件。回呼函式需要三個參數:元素,指標,被處理中的陣列。回呼函式被用來處理陣列的每一個元素;但是陣列的指標處沒有設定元素值或已被刪除了,則會跳過不處理。重複方法不會變動原陣列。當重複方法開始執行時,陣列的元素值會被固定下來,作為處理的依據;開始執行後,元素值有變動或增刪,都會以原陣列值為依據。下面列出重複方法:

filter()

回呼函式用來測試陣列的元素,符合規則(回傳 true)的元素,會組成一個新陣列。其語法是:

var ar = array.filter( 回呼函式 [, 物件]);

IE 會失敗;Firefox, Safari, Chrome 有支援。

forEach()

回呼函式被用來處理每一個元素。其語法是:

var ar = array.forEach( 回呼函式 [, 物件]);

IE 會失敗;Firefox, Safari, Chrome 有支援。

every()

回呼函式被用來測試每一個元素。如果所有元素都符合測試規則,則回傳 true;只要有一個元素的測試結果是 false,則回傳 false。空陣列會回傳 true。其語法是:

var ar = array.every( 回呼函式 [, 物件]);

IE 會失敗;Firefox, Safari, Chrome 有支援。

map()

回呼函式被用來處理每一個元素,產生的值會組成一個新陣列。其語法是:

var ar = array.map( 回呼函式 [, 物件]);

IE 會失敗;Firefox, Safari, Chrome 有支援。

some()

回呼函式被用來測試每一個元素,只要有一個元素符合測試規則,就回傳 true;否則回傳 false。其語法是:

var ar = array.some( 回呼函式 [, 物件]);

IE 會失敗;Firefox, Safari, Chrome 有支援。

reduce()

使用回呼函式由左至右處理每一個元素,會處理元素與前一次產生的值,然後產生新的值。可選擇性設初值,否則以第一個元素為初值。其語法是:

var ar = array.reduce( 回呼函式 [, 初值]);

回呼函式可設四個參數:初值(或前一次回呼產生的值),元素,指標,被處理中的陣列。

IE, Safari, Chrome 會失敗;Firefox 有支援。

reduceRight()

使用回呼函式由右至左處理每一個元素,會處理元素與前一次產生的值,然後產生新的值。可選擇性設初值,否則以最後一個元素為初值。其語法是:

var ar = array.reduceRight( 回呼函式 [, 初值]);

回呼函式可設四個參數:初值(或前一次回呼產生的值),元素,指標,被處理中的陣列。

IE, Safari, Chrome 會失敗;Firefox 有支援。


©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。