JavaScript 概論X

陣列函數

Array. filter(callback(element[, index[, array]])[, thisArg])

函數說明:輸出callback 回傳為true的陣列集合

傳入參數說明:

callback:列舉每個陣列內容時執行的一段程式,回傳為true時該列舉的值將會加入新的回傳陣列中。

element:目前列舉出來陣列內的資料內容

index:目前列舉的陣列內容位於陣列的位置

array:該列舉的陣列

thisArg:callback的this

範例:

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

            var Android = NAS.filter(function(x){return x<3});

            var iOS = NAS.filter(function(x,i){return i%2==0});

說明:第一行宣告一個NAS陣列,並賦予陣列內容[5,4,3,2,1],第二行將NAS陣列filter出的新陣列值傳給Android參數,第二行NAS陣列filter內的callback函數是將NAS陣列中所有小於3的值放入新陣列並回傳作為filter函數的回傳結果,新陣列的值為NAS陣列內小於3的值,所以新陣列的值依序為位置3的2和位置4的1,所以Android參數會變成[2,1]的陣列,第三行將NAS陣列filter出的新陣列值傳給iOS參數,第二行NAS陣列filter內的callback函數是將NAS陣列中所有陣列的index位置數值除以2餘數為0的值放入新陣列並回傳作為filter函數的回傳結果,新陣列的值為NAS陣列的第0、2、4位置會滿足除以2餘數為0所以新陣列的值依序為位置0的5、位置2的3、位置4的1,iOS參數會變成[5,3,1]的陣列。

 

Array.every(callback(element[, index[, array]])[, thisArg])

函數說明:當所有callback的回傳值為true時回傳true,否則一律回傳false

傳入參數說明:

callback:列舉每個陣列內容時執行的一段程式,回傳為true時該列舉的值將會加入新的回傳陣列中。

element:目前列舉出來陣列內的資料內容

index:目前列舉的陣列內容位於陣列的位置

array:該列舉的陣列

thisArg:callback的this

範例:

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

            var Android = NAS.every(function(x){return x<10;})

            var iOS = NAS.every(function(x){return x%2===0;})

說明:第一行宣告一個NAS陣列,並賦予陣列內容[1,2,3,4,5],第二行將NAS陣列every一個函數回傳陣列內容小於10的結果,因為NAS陣列的內容全部都小於10,所以所有的回傳結果都會是true,所以every回傳結果為true,Android參數等於NAS陣列every的回傳直,所以Android為true,第三行將NAS陣列every一個函數回傳陣列內容除以2餘數為0的結果,因為NAS陣列的內容中位置1的值2和位置3的值4除以2的餘數是0以外其他位置的結果都會是false,所以every回傳結果為false,iOS參數等於NAS陣列every的回傳直,所以iOS為false。

 

Array.some(callback(element[, index[, array]])[, thisArg])

函數說明:當所有callback的回傳值為false時回傳false,否則一律回傳true

傳入參數說明:

callback:列舉每個陣列內容時執行的一段程式,回傳為true時該列舉的值將會加入新的回傳陣列中。

element:目前列舉出來陣列內的資料內容

index:目前列舉的陣列內容位於陣列的位置

array:該列舉的陣列

thisArg:callback的this

範例:

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

            var Android = NAS.some(function(x){return x%2===0;})

            var iOS = NAS.some(isNaN)

說明:

第一行宣告一個NAS陣列,並賦予陣列內容[1,2,3,4,5],第二行將NAS陣列some一個函數回傳陣列內容除以2餘數為0的結果,因為NAS陣列的內容中位置1的值2和位置3的值4除以2的餘數是0所以some回傳結果為true,Android參數等於NAS陣列every的回傳直,所以Android為true,第三行將NAS陣列some isNaN函數,因為NAS陣列中沒有NaN值,也就是說所有的isNaN回傳都會是false,所以some回傳結果為false,iOS參數等於NAS陣列every的回傳直,所以iOS為false。

 

 

參考: JavaScript 大全(ISBN:9789862764411)

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料