?sort方法: 如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。 如果想按照其他標準進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下: 若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。 若 a 等于 b,則返回 0。 若 a 大于 b,則返回一個大于 0 的值。
?1.一般的如果是對于sort的用法就是(沒有比較函數的話)
var arr = [1,10,3,55,66]?
arr.sort() 得到的結果按照字符編碼的順序進行排序?
2.傳參數(比較函數)
?var arr =[11,22,33,34,5]?
arr.sort(function(a,b){?
? ? ? ? ? ?return a-b
? ? ? ? ?})?
或者?
var arr =[11,22,33,34,5]?
arr.sort(function(a,b){?
? ? ? ? ?return b-a?
? ? ? ? })?
3.對于數組對象排序?
var arr = [?
?{ name:jack; age:12 },?
?{ name:jack; age:34 },
?{ name:jack; age:6 }
?]
試了一下, 其實是一樣的,只要傳入比較函數一樣可以排序?
?arr.sort(function(a,b){?
? ? ? ? return a.age - b.age
? ? ?})?
?總結: 我是小白,說的有問題,望各路大神指出