JavaScript對JSON數(shù)組簡單排序操作示例
本文實(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)行排序,說得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎ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 的值。
所以重點(diǎn)在于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代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得到如下運(yùn)行結(jié)果:

PS:關(guān)于json操作,這里再為大家推薦幾款比較實(shí)用的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é)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- JS根據(jù)json數(shù)組多個字段排序及json數(shù)組常用操作
- JS實(shí)現(xiàn)json對象數(shù)組按對象屬性排序操作示例
- json格式數(shù)據(jù)的添加,刪除及排序方法
- json數(shù)據(jù)處理技巧(字段帶空格、增加字段、排序等等)
- 基于JavaScript實(shí)現(xiàn)Json數(shù)據(jù)根據(jù)某個字段進(jìn)行排序
- JavaScript對JSON數(shù)據(jù)進(jìn)行排序和搜索
- Json按某個鍵的值進(jìn)行排序
- JSON 數(shù)字排序多字段排序介紹
- JS實(shí)現(xiàn)對json對象排序并刪除id相同項功能示例
- JS實(shí)現(xiàn)json數(shù)組排序操作實(shí)例分析
相關(guān)文章
淺談layer的iframe彈窗給里面的標(biāo)簽賦值的問題
下面小編就為大家?guī)硪黄獪\談layer的iframe彈窗給里面的標(biāo)簽賦值的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
JS Jquery 遍歷,篩選頁面元素 自動完成(實(shí)現(xiàn)代碼)
本篇文章是對JS Jquery 遍歷,篩選頁面元素 自動完成的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
JS實(shí)現(xiàn)把一個頁面層數(shù)據(jù)傳遞到另一個頁面的兩種方式
這篇文章主要介紹了JS實(shí)現(xiàn)把一個頁面層數(shù)據(jù)傳遞到另一個頁面的方式,本文給大家提供了兩種方式,需要的朋友可以參考下2018-08-08
javascript 延遲加載技術(shù)(lazyload)簡單實(shí)現(xiàn)
延遲加載技術(shù)(簡稱lazyload)并不是新技術(shù), 它是js程序員對網(wǎng)頁性能優(yōu)化的一種方案.2011-01-01
Js-$.extend擴(kuò)展方法使方法參數(shù)更靈活
在JS里,我們的方法參數(shù)通常使用JQ的$.extend擴(kuò)展方法來實(shí)現(xiàn),感興趣的朋友可以了解下2013-01-01

