![]() ![]() ![]() |
|
|
|
2022/12/07 10:00:00瀏覽34|回應0|推薦1 | |
延續探討 陣列函數 Array.sort() 函數說明:陣列以Unicode編碼排序,並回傳(不會更動原始陣列) 傳入參數說明: 範例: var a = [111,22,3]; a.sort(); 說明:輸出的陣列排序會為111、22、3,無論輸入的陣列資料是數字還是文字sort()函數都會以Unicode編碼排序輸入的陣列,所以111會排在最前面,22會排在3前面,這是此函數和認知上的排序不同的地方。 範例2: var a = [ant,Message,cat,NAS]; a.sort(); 說明:輸出的陣列排序會為Message、NAS、ant、cat,和上一個範例一樣因為Unicode編碼中的大寫順位在前小寫順序較後所以排序上大寫會在前面,小寫會在後面,字母的順序則和認知上一樣a在最前面z在最後面。
Array.sort([compareFunction]) 函數說明:sort函數會按照輸入的[compareFunction]決定排序的方式 傳入參數說明: compareFunction:回傳值小於零的時候輸入s會放在較前面的位置輸入t則放在較後的位置,回傳值大於零的時候輸入s會放在較後的位置,t則會放在較前的位置。 範例: var a = [ant,Message,cat,NAS]; a.sort(function(s,t){ var a = s.toLowerCase(); var b = t.toLowerCase(); if(a>b)return 1; if(a return 0; }); 說明:輸出的陣列排序會為ant、cat、Message、NAS,compareFunction中先將輸入的值都變成小寫,接下來比較已經變成小寫的兩個輸入變數,若小寫的s變數大於小寫的變數t,則將t變數移到較前面的位置,若小寫的s變數小於小寫的變數t,則將s變數移到較前面的位置,若兩者相等,則不移動位置。
Array.concat(value1[, value2[, ...[, valueN]]]) 傳入參數說明:傳入的參數可以是單一一個值,或是多個值,或是陣列且值和陣列可以同時存在。 函數說明:陣列和輸入的參數組合成新的陣列,輸入的參數會接續在原本陣列的末端。 範例: var a = [1,2,3]; a.concat(4,5); 說明:回傳陣列為[1,2,3,4,5],a陣列後方加入兩個參數值4和5的結果。 範例2: var a = [1,2,3]; a.concat([4,5]); 說明:回傳陣列為[1,2,3,4,5],a陣列後方加入一個陣列[4,5]的結果。 範例3: var a = [1,2,3]; a.concat([4,5],[6,7]); 說明:回傳陣列為[1,2,3,4,5,6,7],a陣列後方加入兩個陣列[4,5]和[6,7]的結果。 範例4: var a = [1,2,3]; a.concat(4,[5,[6,7]]); 說明:回傳陣列為[1,2,3,4,5,[6,7]],a陣列後方加入一個參數4和一個陣列[5,[6,7]]的結果。
Array.slice([begin[, end]]) 函數說明:複製部分陣列 傳入參數說明: begin:從陣列的哪個位置開始複製 end:停止於陣列位置的前一個位置 範例: var a = [1,2,3,4,5]; a.slice(0,3); 說明:回傳陣列為[1,2,3],從陣列零開始取到陣列三的前一個位置。 範例2: var a = [1,2,3,4,5]; a.slice(3); 說明:回傳陣列為[4,5],從陣列三開始取到最後一個位置。 範例3: var a = [1,2,3,4,5]; a.slice(1,-1); 說明:回傳陣列為[2,3,4],從陣列一開始取到陣列倒數第一個位子的上一的前一個位置。 範例4: var a = [1,2,3,4,5]; a.slice(-3,-2); 說明:回傳陣列為[3],從陣列一開始取到陣列倒數第三個位子的上一的前二個位置。
結語:這次介紹的是javascript的陣列相關的函數及使用方式,陣列的方法回傳大多都是複製一個新的陣列,不會影響到原始陣列的資料,這次介紹的幾個陣列的函數都有一些使用上要注意的地方,像是sort要注意它的排序是使用Unicode編碼排序,所以不會照著數字的大小排序,還有slice的end值是取到end值的前一個位置。
參考:JavaScript大全(ISBN:9789862764411)
|
|
( 知識學習|其他 ) |