# array.sort() 排序方法進一步的範例說明 ``` var stringArray = ['Blue', 'Humpback', 'Beluga']; var numericStringArray = ['80', '9', '700']; var numberArray = [40, 1, 5, 200]; var mixedNumericArray = ['80', '9', '700', 40, 1, 5, 200]; function compareNumbers(a, b) { return a - b; } ``` ``` console.log('stringArray:', stringArray.join()); //'stringArray:' 'Blue,Humpback,Beluga' //join後的資料會轉為文字;沒有用任何東西join會自動有逗號在string中區隔 console.log('Sorted:', stringArray.sort()); //'Sorted:' ['Beluga','Blue','Humpback'] //沒給compareFunction的sort,會以字元順序排列 ---------------------------------------------------------------------- console.log('numberArray:', numberArray.join()); //'numberArray:''40,1,5,200' //join後將陣列數字轉為string,逗號區格 console.log('Sorted without a compare function:', numberArray.sort()); //'Sorted without a compare function:'[1,200,40,5] //將數字以字元順序排列 console.log('Sorted with compareNumbers:', numberArray.sort(compareNumbers)); //'Sorted with compareNumbers:'[1,5,40,200] //套用由小到大排列的compareFunction,會將陣列值數字由小到大排列 ---------------------------------------------------------------------- console.log('numericStringArray:', numericStringArray.join()); //'numericStringArray:''80,9,700' //join後將陣列數字轉為string,逗號區隔 console.log('Sorted without a compare function:', numericStringArray.sort()); //'Sorted without a compare function:' ['700','80','9'] //沒有給compareFunction的sort(),以字元順序排列 console.log('Sorted with compareNumbers:', numericStringArray.sort(compareNumbers)); //'Sorted with compareNumbers:'['9','80','700'] //使用compareFunction,即使是"數字字串",也會被由小到大排列(但輸出仍是陣列中"數字字串") ---------------------------------------------------------------------- console.log('mixedNumericArray:', mixedNumericArray.join()); //'mixedNumbericArray:''80,9,700,40,1,5,200' //join後陣列中的值(不論是string或number)被組成一組string(數字字串) console.log('Sorted without a compare function:', mixedNumericArray.sort()); //'Sorted without a compare function:'[1,200,40,5,'700','80','9'] //沒有compareFunction的sort()以字元數序排列,保留原本陣列中的資料格式 console.log('Sorted with compareNumbers:', mixedNumericArray.sort(compareNumbers)); //'Sorted with compareNumbers:'[1,5,'9',40,'80',200,'700'] //使用由小到大的compareFunction後,陣列中資料由小到大排列,原始格式不變 ```