javascript对JSON数据排序的3个例子


Posted in Javascript onApril 12, 2014

一、适用于数字排序和字幕排序
json 的排序方法有很多种,这是其中最简单的一种方法。

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

];

1、数字排序
obj.sort(sortBy('b', false, parseInt));

console.log(obj);

2、字符串排序
obj.sort(sortBy('b', false, String));

console.log(obj);

二、JSON排序例子2

var willSort = [

    {

        name:'shangwenhe',

        age:25,

        height:170

    },

    {

        name:'zhangsan',

        age:31,

        height:169

    },

    {

        name:'lisi',

        age:31,

        height:167

    },

    {

        name:'zhaowu',

        age:22,

        height:160

    },

    {

        name:'wangliu',

        age:23,

        height:159

    }

];


/*

    @function     JsonSort 对json排序

    @param        json     用来排序的json

    @param        key      排序的键值

*/

function JsonSort(json,key){

    //console.log(json);

    for(var j=1,jl=json.length;j < jl;j++){

        var temp = json[j],

            val  = temp[key],

            i    = j-1;

        while(i >=0 && json[i][key]>val){

            json[i+1] = json[i];

            i = i-1;    

        }

        json[i+1] = temp;

        

    }

    //console.log(json);

    return json;
}

var json = JsonSort(willSort,'age');

console.log(json);

三、JSON排序例子3

var people = [

{

    name: 'a75',

    item1: false,

    item2: false

},

{

    name: 'z32',

    item1: true,

    item2: false

},

{

    name: 'e77',

    item1: false,

    item2: false

}];
function sortByKey(array, key) {

    return array.sort(function(a, b) {

        var x = a[key]; var y = b[key];

        return ((x < y) ? -1 : ((x > y) ? 1 : 0));

    });

}
people = sortByKey(people, 'name');
Javascript 相关文章推荐
javascript 装载iframe子页面,自适应高度
Mar 20 Javascript
JavaScript 无符号右移运算符
Apr 17 Javascript
关于ExtJS4.1:快捷键支持的问题
Apr 24 Javascript
JS实现图片无间断滚动代码汇总
Jul 30 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
浅谈js中的this问题
Aug 31 Javascript
JavaScript反射与依赖注入实例详解
May 29 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
Nuxt 项目性能优化调研分析
Nov 07 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 #Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 #Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
Apr 12 #Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 #Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 #Javascript
javascript事件冒泡详解和捕获、阻止方法
Apr 12 #Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 #Javascript
You might like
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
基于python实现名片管理系统
2018/11/30 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
上班早退检讨书
2014/01/09 职场文书
实用的简历自我评价
2014/03/06 职场文书
公司档案管理制度
2015/08/05 职场文书
校园安全主题班会
2015/08/12 职场文书