JavaScript對(duì)JSON數(shù)組簡(jiǎn)單排序操作示例
本文實(shí)例講述了JavaScript對(duì)JSON數(shù)組簡(jiǎn)單排序操作。分享給大家供大家參考,具體如下:
我們經(jīng)?;厥褂玫綌?shù)據(jù)格式
var arr=[{num:1},{num:3},{num:2}]
如何根據(jù)數(shù)組里面的JSON數(shù)據(jù)的某個(gè)key進(jìn)行排序
javascript有一個(gè)sort()方法,直接通過 arr.sort()進(jìn)行排序,默認(rèn)只對(duì)數(shù)組的值進(jìn)行排序,然而以上的數(shù)組的值卻是個(gè)JSON格式的。
我們?cè)诳纯?code>sort方法的定義:
定義和用法
sort() 方法用于對(duì)數(shù)組的元素進(jìn)行排序。
語法
arrayObject.sort(sortby)
| 參數(shù) | 描述 |
| sortby | 可選。規(guī)定排序順序。必須是函數(shù)。 |
返回值
對(duì)數(shù)組的引用。請(qǐng)注意,數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本。
說明
如果調(diào)用該方法時(shí)沒有使用參數(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ù)要比較兩個(gè)值,然后返回一個(gè)用于說明這兩個(gè)值的相對(duì)順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個(gè)小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個(gè)大于 0 的值。
所以重點(diǎn)在于sortby這個(gè)參數(shù)的規(guī)則。根據(jù)以上的說明我們可以創(chuàng)建一個(gè)規(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測(cè)試上述代碼,可得到如下運(yùn)行結(jié)果:

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

