JavaScript對JSON數(shù)組簡單排序操作示例
本文實例講述了JavaScript對JSON數(shù)組簡單排序操作。分享給大家供大家參考,具體如下:
我們經(jīng)?;厥褂玫綌?shù)據(jù)格式
var arr=[{num:1},{num:3},{num:2}]
如何根據(jù)數(shù)組里面的JSON數(shù)據(jù)的某個key進(jìn)行排序
javascript有一個sort()方法,直接通過 arr.sort()進(jìn)行排序,默認(rèn)只對數(shù)組的值進(jìn)行排序,然而以上的數(shù)組的值卻是個JSON格式的。
我們在看看sort方法的定義:
定義和用法
sort() 方法用于對數(shù)組的元素進(jìn)行排序。
語法
arrayObject.sort(sortby)
| 參數(shù) | 描述 |
| sortby | 可選。規(guī)定排序順序。必須是函數(shù)。 |
返回值
對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本。
說明
如果調(diào)用該方法時沒有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說得更精確點,是按照字符編碼的順序進(jìn)行排序。要實現(xiàn)這一點,首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較。
如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù) a 和 b,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
所以重點在于sortby這個參數(shù)的規(guī)則。根據(jù)以上的說明我們可以創(chuàng)建一個規(guī)則函數(shù)
var arr=[{num:1},{num:3},{num:2}]
function newSort(x,y)
{
return x.num-y.num;
}
console.log(arr.sort(newSort));//完成排序,如果JSON里面的不是數(shù)字,則需要在newSort里面做一下處理
//比如:如果num的值是_1而不是數(shù)字1 則 return x.state.substr(1,1)-y.state.substr(1,1);
這里使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得到如下運行結(jié)果:

PS:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript中json操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- JS根據(jù)json數(shù)組多個字段排序及json數(shù)組常用操作
- JS實現(xiàn)json對象數(shù)組按對象屬性排序操作示例
- json格式數(shù)據(jù)的添加,刪除及排序方法
- json數(shù)據(jù)處理技巧(字段帶空格、增加字段、排序等等)
- 基于JavaScript實現(xiàn)Json數(shù)據(jù)根據(jù)某個字段進(jìn)行排序
- JavaScript對JSON數(shù)據(jù)進(jìn)行排序和搜索
- Json按某個鍵的值進(jìn)行排序
- JSON 數(shù)字排序多字段排序介紹
- JS實現(xiàn)對json對象排序并刪除id相同項功能示例
- JS實現(xiàn)json數(shù)組排序操作實例分析
相關(guān)文章
js統(tǒng)計頁面上每個標(biāo)簽的數(shù)量實例代碼
這篇文章通過實例代碼給大家講解了通過js統(tǒng)計頁面上每個標(biāo)簽的數(shù)量,代碼很簡單,具有一定的參考借鑒價值,需要的朋友參考下吧2018-05-05
關(guān)于JS數(shù)組追加數(shù)組采用push.apply的問題
JS數(shù)組追加數(shù)組沒有現(xiàn)成的函數(shù),這么多年我已經(jīng)習(xí)慣了a.push.apply(a, b);這種自以為很酷的,不需要寫for循環(huán)的寫法,一直也沒遇到什么問題,直到今天我要append的b是個很大的數(shù)組時才遇到了坑。2014-06-06
JavaScript中Null與Undefined的區(qū)別解析
這篇文章主要介紹了JavaScript中Null與Undefined的區(qū)別解析,本文給出了多個代碼實例講解它們之間的區(qū)別,需要的朋友可以參考下2015-06-06
JavaScript實現(xiàn)郵箱地址自動匹配功能代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)E-mail郵箱地址自動匹配功能代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
JavaScript中實現(xiàn)最高效的數(shù)組亂序方法
這篇文章主要介紹了JavaScript中實現(xiàn)最高效的數(shù)組亂序方法,數(shù)組亂序的意思是,把數(shù)組內(nèi)的所有元素排列順序打亂,需要的朋友可以參考下2014-10-10
微信小程序使用onreachBottom實現(xiàn)頁面觸底加載及分頁效果
小程序還沒有使用pc端的那種分頁格式,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用onreachBottom實現(xiàn)頁面觸底加載及分頁效果的相關(guān)資料,需要的朋友可以參考下2022-10-10

