在實際工作中,經常會遇到壹個問題:後臺返回的壹個數組中有I個json數據,我們需要根據json中的壹個條目對數組進行排序。
例如,返回的數據結構如下所示:
{
結果:[
{id:1,名稱:'中國銀行' },
{id:3,名稱:'北京銀行' },
{id:2,名稱:'河北銀行' },
{id:10,名稱:'保定銀行' },
{id:7,名稱:'淶水銀行' }
]
}現在根據業務需要,按照id的大小排序,將數組的順序從id小的json重新排列到id大的json。
在js中添加排序方法:
這裏使用了JavaScript sort()方法。首先解釋壹下排序方法。
語法:arrayObject.sort(sortby)
Sortby:可選,指定排序順序。壹定是函數。
如果不帶參數調用該方法,數組中的元素將按字母順序排序,或者更準確地說,按字符編碼的順序排序。要實現這壹點,您應該首先將數組的所有元素轉換為字符串(如果需要的話)以便進行比較。
如果希望按其他標準排序,需要提供壹個比較函數,該函數比較兩個值,然後返回壹個數字來解釋這兩個值的相對順序。比較函數應該有兩個參數,a和b,其返回值如下:
如果A小於B,在排序後的數組中A應該出現在B之前,返回小於0的值。
如果a等於b,則返回0。
如果a大於b,則返回大於0的值。
讓我們開始使用sort(sortby)對此進行排序,並將其打印到控制臺:
函數sortId(a,b){
返回a.id-b.id
}
result . sort(sortId);
console.log(結果);完整的測試樣本代碼:
& lt!DOCTYPE html & gt
& lthtml & gt
& lthead & gt
& ltmeta charset="utf-8 " >
& lttitle & gtWww.gxlcms.com JSON數組排序
& lt/head & gt;
& ltbody & gt
& lt腳本& gt
var結果= [
{id:1,名稱:'中國銀行' },
{id:3,名稱:'北京銀行' },
{id:2,名稱:'河北銀行' },
{id:10,名稱:'保定銀行' },
{id:7,名稱:'淶水銀行' }
]
函數sortId(a,b){
返回a.id-b.id
}
result . sort(sortId);
console.log(結果);
& lt/script & gt;
& lt/body & gt;
& lt/html & gt;然後檢查控制臺,排序成功:
相信看完這個案例,妳已經掌握了方法。更多精彩請關註Gxl上其他相關文章!
推薦閱讀:
vuex入門教學步驟的詳細說明
如何高級使用vuex
使用vue-admin-template優化步驟的詳細說明