js使用Array.prototype.sort()對數(shù)組對象排序的方法
本文實例講述了js使用Array.prototype.sort()對數(shù)組對象排序的方法。分享給大家供大家參考。具體分析如下:
在講對數(shù)組對象進行排序時,我們先來簡單的了解一下Array.prototype.sort()。sort方法接受一個參數(shù)——Function,function會提供兩個參數(shù),分別是兩個進行比較的元素,如果元素是String類型則通過Unicode code進行比較,如果是Number類型則比較值的大小。如果比較的函數(shù)中返回1則兩個元素交換位置,0和-1不交換位置。先看一個例子:
// 從小到大排序
arr.sort(function (a, b) {
return a > b ? 1 : -1;
});
// 得到的結果:[1, 2, 3, 5]
那么回到我們的主題,如果是對一個數(shù)組對象進行排序,該怎么寫呢?其實原理和上面一樣,如:
{ a : 2, b : 3.2},
{ a : 3, b : 1.2},
{ a : 4, b : 2.2},
{ a : 6, b : 1.2},
{ a : 5, b : 3.2}
]
/// 從小到大按屬性b排序
arr.sort(function(x, y){
return x.b > y.b ? 1:-1;
});
x和y就是arr的一個元素,即一個對象,所以直接比較兩個對象的屬性即可。
上面的例子中,最小的元素中有重復,如果需求是:先按b屬性從小到大排序,如果最小中有重復則再按a屬性排序,那應該怎么寫呢?
在排序的時候,先按b屬性排序,如果x.b的大于y.b則將x移到y(tǒng)的右邊,如果x.b等于y.b則再通過x.a和y.a進行比較,所以代碼如下:
if (x.b > y.b) {
return 1;
} else if (x.b === y.b) {
return x.a > y.a ? 1 : -1;
} else if (x.b < y.b) {
return -1;
}
})
希望本文所述對大家的javascript程序設計有所幫助。
- Js數(shù)組排序函數(shù)sort()介紹
- js對數(shù)組中的數(shù)字從小到大排序?qū)崿F(xiàn)代碼
- Javascript數(shù)組的排序 sort()方法和reverse()方法
- JS數(shù)組排序技巧匯總(冒泡、sort、快速、希爾等排序)
- js中數(shù)組(Array)的排序(sort)注意事項說明
- js sort 二維數(shù)組排序的用法小結
- JavaScript中數(shù)組Array.sort()排序方法詳解
- JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例
- JS實現(xiàn)json對象數(shù)組按對象屬性排序操作示例
- js實現(xiàn)嵌套數(shù)組重排序
相關文章
前端實現(xiàn)HTML網(wǎng)頁轉(zhuǎn)PDF并導出
這篇文章主要為大家詳細介紹了前端如何通過html2canvas和jsPDF實現(xiàn)HTML網(wǎng)頁轉(zhuǎn)PDF并導出,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下2025-01-01
利用JavaScript實現(xiàn)簡單3D開關書本模型
這篇文章主要為大家詳細介紹了如何利用JavaScript實現(xiàn)簡單3D開關書本模型的效果,文中的實現(xiàn)代碼講解的非常詳細,具有一定參考價值,感興趣的同學可以動手嘗試一下2023-11-11
JavaScript實現(xiàn)鼠標滾輪控制頁面圖片切換功能示例
這篇文章主要介紹了JavaScript實現(xiàn)鼠標滾輪控制頁面圖片切換功能,涉及javascript事件響應及頁面元素動態(tài)操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-10-10
Js 代碼中,ajax請求地址后加隨機數(shù)防止瀏覽器緩存的原因
Js 代碼中,ajax請求地址后加隨機數(shù)防止瀏覽器緩存的原因,需要的朋友可以參考一下2013-05-05

