4 回答

TA貢獻1824條經驗 獲得超5個贊
sort() 是對數組進行排序,調用方法為:
array.sort() 按照你的程序 調用為 arr.sort();就好了,
var arr = new Array(6)
arr[0] = "10";
arr[1] = "5";
arr[2] = "40";
arr[3] = "25";
arr[4] = "1000";
arr[5] = "1";
document.write(arr.sort());
我給你修改了下程序,現在輸出的話 應該是:
1,10,1000,25,40,5
按照字母順序排序,因為 你數組的元素數據類型為 String

TA貢獻1802條經驗 獲得超10個贊
sort的參數,為一個函數,那么這個函數接受2個參數,a, b
這個函數在:
a == b 是為0
a > b 時為 1
a < b時 為-1
那么sort在排序的時候,根據冒泡排序,傳遞2個數進來
對于
arr[0] = "10"
arr[1] = "5"
那么 a=10 b=5,
顯然a > b,那么sort根據這個函數返回的結構,就開始排了,
5, 10
那么第一次結束時: 5 10 40 25 1000 1
接下來:然后5 跟 40 25 1000 1排,
完了只有是: 1 10 40 25 1000 5
然后從10 開始,10 - 40 10 <->25 10 <-> 1000 10 <->5
結束后:1 5 40 25 1000 10
再40 : 1 5 10 25 1000 40
再 25 :
再 1000 : 1 5 10 25 40 1000
到此,最后一位就剩一個了,沒有啥比較的了,排序完成

TA貢獻1871條經驗 獲得超8個贊
定義和用法:
sort() 方法用于對數組的元素進行排序。
語法:
1 | arrayObject.sort(sortby) |
描述:
sortby 可選。規定排序順序。必須是函數。
返回值:
對數組的引用。請注意,數組在原數組上進行排序,不生成副本。
說明:
如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
添加回答
舉報