數(shù)組對象要按屬性大小排序怎么辦?
數(shù)組對象屬性排序
var arr = [{
data: 21,
weather:'晴'
}, {
data: 111,
weather:'小雨'
}, {
data: 32,
weather:'大雨'
}, {
data: 2,
weather:'小雨'
}, {
data: 2,
weather:'陰'
}, {
data: 212,
weather:'雪'
}]
我們要如何實現(xiàn)數(shù)組中的對象按data大小排序?
sort方法
這里使用JavaScript sort() 方法,首先解釋下這個sort的方法
定義和用法
sort() 方法用于對數(shù)組的元素進行排序。
語法
arrayObject.sort(sortby)
返回值
對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進行排序,不生成副本。
說明
如果調用該方法時沒有使用參數(shù),將按字母順序對數(shù)組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現(xiàn)這一點,首先應把數(shù)組的元素都轉換成字符串(如有必要),以便進行比較。
如果想按照其他標準進行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應該具有兩個參數(shù) a 和 b,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應該出現(xiàn)在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
實戰(zhàn)
下面開始使用sort(sortby) 來進行這個排序,并打印到控制臺:
function sortData(a, b) {
return b.data - a.data
}
arr.sort(sortData);
console.log(arr);
輸出結果:

輸出結果
tip:如果想要從小到大的順序可以把方法中a和b的位置互換一下。
function sortData(a, b) {
return a.data - b.data
}