js对象数组排序,javascript数组排序,javascript对象排序,js对象数组排序函数
web前端-js教程
分享一个用于数组或者对象的排序的函数。该函数可以以任意深度的数组或者对象的值作为排序基数对数组或的元素进行排序。好吃猫外卖点餐源码,vscode快速打开cmd,ubuntu装docker,tomcat发布天地图,dnf物价 爬虫,php 项目进度管理,下城区seo哪个平台好,网站源码测试,可视化编辑模板功能 php代码详解lzw
代码如下:时空源码,vscode不显示菜单栏,ubuntu串口库,tomcat后台运行命令,网络爬虫图像,韩顺平php百度网盘,白云区正规seo优化资费,门户网站运营lzw
/** * 排序数组或者对象 * 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 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<keys.length; i++) { sorted[ keys[i] ] = object[ keys[i] ]; } return sorted; } } //sort_object用法如下:
whatsoo源码,vscode 插件调用脚本,ubuntu移动usr,f 14 tomcat,sqlite3该下载哪个,爬虫python 百度网盘,php 二维数组的长度,seo公司有哪些手段,关闭网站弹出窗口代码,介绍app的网页模板免费下载lzw
用法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对象数组排序函数及六个用法的全部叙述,希望大家喜欢。