js實現的json格式資料排序程式碼例項
本章節介紹一下如何實現json格式資料的排序功能,這個排序功能在很多較為複雜的效果中都有使用,比如table表格中資料排序功能也可能會用到,下面就通過程式碼例項介紹一下如何實現json格式資料的排序功能。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var sortBy=function (filed,rev,primer){ rev = (rev) ? -1 : 1; return function (a, b) { a = a[filed]; b = b[filed]; if (typeof (primer) != 'undefined') { a = primer(a); b = primer(b); } if (a < b) { return rev * -1; } if (a > b) { return rev * 1; } return 1; } }; var obj=[ {b: '3', c: 'c'}, {b: '1', c: 'a'}, {b: '2', c: 'b'} ]; obj.sort(sortBy('b',false,parseInt)); console.log(obj);
以上程式碼實現了我們的要求,可以實現簡單的排序功能,下面介紹一下它的實現過程。
一.實現原理:
由於json格式物件也就是物件直接量是作為陣列的元素存在的,所以對json格式物件的排序總體上是使用的sort()方法,而在確定sort()函式排序規則的時候就要根據我們所確定的一些條件,比如物件的鍵b的值的大小,是否反轉順序等,具體請看程式碼註釋。
二.程式碼註釋:
1.var sortBy=function (filed,rev,primer){},此函式可以返回一個函式物件用以指定sort()函式排序規則,第一個用來規定比較的是json物件的哪一鍵的值,第二個引數用來規定是否飯反轉順序,如果為true則反轉比較順序,也就是從小打排序,第三個引數規定以比較字串比較還是以數字型別進行比較。
2.rev = (rev) ? -1 : 1,將rev設定為1或者-1,要根據rev傳遞的引數值,三元運算子,具體可以參閱三元運算子用法詳解一章節 。
3.return function (a, b){},返回一個函式物件,用作sort()函式的引數,具體可以參閱javascript sort()函式用法詳解一章節。
4.a = a[filed],函式逇引數a和b是陣列中的前後兩個json格式物件,這個就是獲取物件a的物件鍵值。
5.if (typeof (primer) != 'undefined') { a = primer(a);b = primer(b);},判斷函式是否傳遞第三個引數,因為如果引數沒有傳遞,那麼預設值是undefined,當傳遞此引數的時候,就會進行相應的型別轉換。
相關文章
- js實現字串轉JSON格式字串JSON
- JS中排序的用法和例項JS排序
- 基於json資料格式實現的簡單資料庫——jsonDBJSON資料庫
- 時間日期格式化程式碼例項
- html實現簡單ListViews效果的例項程式碼HTMLView
- ajax讀取資料庫資料程式碼例項資料庫
- js實現【JSON格式化】——方式1:正則JSON
- JS 預編譯程式碼例項分析JS編譯
- vuejs實現新增tag標籤程式碼例項VueJS
- 例項程式碼分享Python實現Linux監控PythonLinux
- jquery.idTabs.min.js選項卡程式碼例項jQueryJS
- 將物件解析為JSON資料和將JSON資料解析為物件的簡單例項物件JSON單例
- 使用原生js實現選項卡功能例項教程JS
- MyCat分片:水平拆分例項解析和程式碼實現!
- Vue 原始碼解析(例項化前) - 響應式資料的實現原理Vue原始碼
- Vue 原始碼解析(例項化前) – 響應式資料的實現原理Vue原始碼
- 處理json格式的資料JSON
- Xamarin Essentials教程實現資料的傳輸功能例項
- 常見排序演算法原理及JS程式碼實現排序演算法JS
- 正則實現個位數補零程式碼例項
- Oracle 資料庫巡檢指令碼 單例項 RAC 輸出HTML格式Oracle資料庫指令碼單例HTML
- json例項練習 json物件JSON物件
- .net 對JSON資料排序JSON排序
- python 單一程式例項 實現Python
- Python物件導向多型實現原理及程式碼例項Python物件多型
- Java學習之7種排序演算法的完整例項程式碼Java排序演算法
- js 實現堆排序JS排序
- Vue.js請求JSON Server伺服器資料的實現方法Vue.jsJSONServer伺服器
- spring框架中多資料來源建立載入並且實現動態切換的配置例項程式碼Spring框架
- Python實現簡單網頁圖片抓取完整程式碼例項Python網頁
- dom操作程式碼例項
- css梯形程式碼例項CSS
- json_encode的資料格式化的兩種格式[]和{}JSON
- MySQL 是如何實現資料的排序的?MySql排序
- 127 PHP獲取網頁標題的3種實現方法程式碼例項PHP網頁
- js 實現程式碼雨效果JS
- MySQL資料庫的事務處理用法與例項程式碼詳解MySql資料庫
- HTML 使用表單標籤實現註冊頁面的例項程式碼HTML
- 隨機快速排序Java程式碼實現隨機排序Java