亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JavaScript對象數組排序函數及六個用法

2024-05-06 16:26:49
字體:
來源:轉載
供稿:網友
本文給大家分享一個用于數組或者對象的排序的函數。該函數可以以任意深度的數組或者對象的值作為排序基數對數組或的元素進行排序
 

分享一個用于數組或者對象的排序的函數。該函數可以以任意深度的數組或者對象的值作為排序基數對數組或的元素進行排序。

代碼如下:

 /**  * 排序數組或者對象  * by Jinko  * date --  * @param object 數組或對象  * @param subkey 需要排序的子鍵, 該參數可以是字符串, 也可以是一個數組  * @param desc 排序方式, true:降序, false|undefined:升序  * @returns {*} 返回排序后的數組或者對象  *  * 注意: 對于對象的排序, 如果使用console.log打印對象的顯示可能和排序結果不一致,  *  其鍵會被瀏覽器以字母順序排序顯示,但在for循環中則為正確的排序順序  */ function sort_object(object, subkey, desc) {   var is_array = false;   if(Object.prototype.toString.call(object) === '[object Array]') {     is_array = true;   }   if(is_array) {     var keys = {length:object.length};   } else {     if(typeof(Object.keys) == 'function') {       var keys = Object.keys(object);     } else{       var keys = [];       for(var key in keys) {         keys.push(key);       }     }   }   for(var i=; i<keys.length; i++) {     for(var j=i+; j<keys.length; j++) {       if(is_array) {         //數組排序         if(Object.prototype.toString.call(subkey) === '[object Array]') {           var vali = object[i];           var valj = object[j];           for(var si=; si<subkey.length; si++) {             vali = vali[ subkey[si] ];             valj = valj[ subkey[si] ];           }         } else {           if((!subkey && subkey !== ) || subkey == '' && object.sort) {             var vali = object[i];             var valj = object[j];           } else {             var vali = object[i][subkey];             var valj = object[j][subkey];           }         }         if(desc) {           if(valj > vali) {             var tmp = object[i];             object[i] = object[j];             object[j] = tmp;           }         } else {           if(valj < vali) {             var tmp = object[i];             object[i] = object[j];             object[j] = tmp;           }         }       } else {         //對象排序         var obi = object[ keys[i] ];         var obj = object[ keys[j] ];         if(Object.prototype.toString.call(subkey) === '[object Array]') {           var vali = obi;           var valj = obj;           for(var si=; si<subkey.length; si++) {             vali = vali[ subkey[si] ];             valj = valj[ subkey[si] ];           }         } else {           if((!subkey && subkey !== ) || subkey == '' && object.sort) {             var vali = obi;             var valj = obj;           } else {             var vali = obi[subkey];             var valj = obj[subkey];           }         }         if(desc) {           if(valj > vali) {             var tmp = keys[i];             keys[i] = keys[j];             keys[j] = tmp;           }         } else {           if(valj < vali) {             var tmp = keys[i];             keys[i] = keys[j];             keys[j] = tmp;           }         }       }//is!array     }   }   if(is_array) {     return object;   } else {     var sorted = {};     for(var i=; i<keys.length; i++) {       sorted[ keys[i] ] = object[ keys[i] ];     }     return sorted;   } } //sort_object 

用法如下:

用法1: 

 var data = {   "a": {     "session_offline": ,     "session_online": ,     "session_count":    },   "b": {     "session_offline": ,     "session_online": ,     "session_count":    },   "c": {     "session_offline": ,     "session_online": ,     "session_count":    },   "d": {     "session_offline": ,     "session_online": ,     "session_count":    } }; //根據session_online字段升序排序 data = sort_object(data, 'session_online'); for(var k in data) {   console.log(data[k]); } console.log('------------------'); //根據session_offline字段降序排序 data = sort_object(data, 'session_offline', true); for(var k in data) {   console.log(data[k]); } 

 用法2:

var data = [   {     "cpu": ,     "cpuhz": ,     "cpuhz_use": ,   },   {     "cpu": ,     "cpuhz": ,     "cpuhz_use": ,   },   {     "cpu": ,     "cpuhz": ,     "cpuhz_use": ,   },   {     "cpu": ,     "cpuhz": ,     "cpuhz_use": ,   } ]; //根據cpuhz_use字段進行排序 data = sort_object(data, 'cpuhz_use'); console.log(data); 

 用法3:

 var data = [,,,,,,,]; //對一維數組進行升序排序 data = sort_object(data); console.log(data); //對一維數組進行降序排序 data = sort_object(data, null, true); console.log(data); 

 用法4:

 var data = {'a':, 'b':, 'c':, 'd':}; //對對象進行升序排序 data = sort_object(data); //對對象進行降序排序 data = sort_object(data, '', true); for(var k in data) {   console.log(k, ':', data[k]); } 

 用法5:

 var data = {   "l_": {     "l": {       "l":      }   },   "l_": {     "l": {       "l":      }   },   "l_": {     "l": {       "l":      }   },   "l_": {     "l": {       "l":      }   } }; //對對象元素的l下的l的值為基礎進行升序排序 data = sort_object(data, ['l', 'l']); for(var k in data) {   console.log(data[k].l); } 

 用法6:

var data = [   [     {       "a":      },     ,   ],   [     {       "a":      },     ,   ],   [     {       "a":      },     ,   ] ]; //對數組的元素以下標為的元素的鍵名為a的值為基礎進行升序排序 data = sort_object(data, [,'a']); for(var k = ; k<data.length; k++) {   console.log(data[k]); } console.log('---------------------'); //對數組的元素以下標為的元素的值為基礎進行升序排序 data = sort_object(data, []); // 等價于 data = sort_object(data, ); for(var k = ; k<data.length; k++) {   console.log(data[k]); }

以上內容是小編給大家分享的JavaScript對象數組排序函數及六個用法的全部敘述,希望大家喜歡。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情亚洲国产| 精品亚洲一区二区三区| 久久国产精品免费视频| 国产精品视频色| 欧美国产日韩一区| 久久视频这里只有精品| 国产精品视频在线观看| 亚洲国产99精品国自产| 精品综合久久久久久97| 俺也去精品视频在线观看| 日韩在线视频免费观看高清中文| 欧美体内谢she精2性欧美| 午夜精品一区二区三区在线播放| 日韩激情av在线免费观看| 久久久久久久一区二区| 欧美成人亚洲成人日韩成人| 欧美日韩xxx| 欧美黄色片免费观看| 在线性视频日韩欧美| 日韩大陆欧美高清视频区| 正在播放欧美视频| 51精品在线观看| www.亚洲免费视频| 亚洲国产精品人久久电影| 欧美精品免费在线观看| 亚洲欧美变态国产另类| 亚洲一区二区久久久久久| 亚洲精品视频免费在线观看| 欧美色欧美亚洲高清在线视频| 欧美激情视频免费观看| 日韩精品视频在线播放| 97**国产露脸精品国产| 91福利视频网| 国产日韩在线精品av| 欧美黑人xxx| 日本电影亚洲天堂| 久久综合88中文色鬼| 欧美大胆在线视频| 亚洲欧美激情四射在线日| 疯狂蹂躏欧美一区二区精品| 久久伊人色综合| 欧美日韩中文字幕日韩欧美| 午夜精品久久久久久久白皮肤| 欧美日韩亚洲系列| 国内伊人久久久久久网站视频| 中文字幕日韩精品有码视频| 日韩在线观看网站| 国产精品va在线播放我和闺蜜| 97久久久免费福利网址| 中文字幕日韩精品在线| 欧美日韩精品在线观看| 懂色aⅴ精品一区二区三区蜜月| 欧美一级高清免费播放| 日韩激情在线视频| 久久夜精品香蕉| 高清欧美电影在线| 国产91精品不卡视频| 91精品国产91久久久久久不卡| 亚洲色图35p| 欧美黑人性猛交| 热久久这里只有| 亚洲精品福利资源站| 国产精品久久久久77777| 国产成人免费av电影| 国产亚洲精品美女| 精品网站999www| 亚洲综合精品一区二区| 亚洲精品视频中文字幕| 91香蕉嫩草影院入口| 亚洲国产欧美一区二区丝袜黑人| 欧美电影院免费观看| 久久影院资源站| 欧美性xxxxx极品娇小| 国产69精品99久久久久久宅男| 成人黄色av网站| 69视频在线免费观看| 日韩av成人在线| 国模私拍视频一区| 国产精品午夜视频| 欧美做受高潮电影o| 亚洲国产精品嫩草影院久久| 日韩乱码在线视频| 欧美日韩aaaa| 95av在线视频| 日日噜噜噜夜夜爽亚洲精品| 久久久久久久久久亚洲| 精品伊人久久97| 国产视频精品一区二区三区| 亚洲女人被黑人巨大进入al| 国产一区二区三区久久精品| 26uuu国产精品视频| 国产精品免费福利| 欧美激情影音先锋| 91精品国产色综合久久不卡98口| 国产亚洲欧美日韩一区二区| 国产午夜精品麻豆| 中文字幕日韩欧美| 岛国av一区二区三区| 欧美激情aaaa| 91成人在线视频| 成人免费福利在线| 亚洲精品乱码久久久久久按摩观| 亚洲丁香久久久| 国产精品一区专区欧美日韩| 亚洲欧美福利视频| 91高清视频免费| 午夜精品三级视频福利| 亚洲专区在线视频| 国产精品国产三级国产专播精品人| 久久影院中文字幕| 精品少妇v888av| 亚洲香蕉成视频在线观看| 成人在线激情视频| 久久中文精品视频| 亚洲第一精品久久忘忧草社区| 欧美日韩午夜剧场| 国产成人+综合亚洲+天堂| 欧美激情按摩在线| www.欧美精品| 国产一区二区三区在线观看视频| 国产精品丝袜高跟| 在线观看不卡av| 欧美性少妇18aaaa视频| 亚洲直播在线一区| 国产精品久久久av| 欧美电影免费看| 高清在线视频日韩欧美| 亚洲老头老太hd| 欧美高清视频在线观看| 97精品国产97久久久久久春色| 成人精品aaaa网站| 亚洲精品国产精品国自产在线| 国产小视频国产精品| 91精品久久久久久久| 亚洲人成在线免费观看| 国产精品爱啪在线线免费观看| 亚洲日本成人网| 国产91ⅴ在线精品免费观看| 久久亚洲精品小早川怜子66| 日韩中文有码在线视频| 中文字幕亚洲一区二区三区五十路| 97超碰国产精品女人人人爽| 亚洲午夜av电影| 日韩av123| 国产精品99免视看9| 91福利视频在线观看| 亚洲最大的网站| 亚洲**2019国产| 一区二区三区四区在线观看视频| 久久久久久综合网天天| 日本一区二区不卡| 亚洲图片在线综合| 亚洲人成电影网站色…| 91精品久久久久久久久中文字幕| 亚洲午夜精品久久久久久性色| 日本久久久久久久久| 精品久久久久久| 亚洲成年网站在线观看| 97精品在线观看| 欧美福利小视频| 国产亚洲一区精品| 日韩av电影手机在线| 亚洲成人亚洲激情| 91亚洲精品在线观看|