栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JavaScript对象数组排序函数及六个用法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript对象数组排序函数及六个用法

分享一个用于数组或者对象的排序的函数。该函数可以以任意深度的数组或者对象的值作为排序基数对数组或的元素进行排序。

代码如下:

 
 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 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 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

用法如下:

用法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

以上内容是小编给大家分享的Javascript对象数组排序函数及六个用法的全部叙述,希望大家喜欢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/99188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号