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 相关文章推荐
js实现连续英文字符自动换行兼容ie6 ie7和firefox
Sep 06 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
Feb 04 Javascript
JavaScipt中栈的实现方法
Feb 17 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
javascript 判断是否是微信浏览器的方法
Oct 09 Javascript
React快速入门教程
Jan 17 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
May 30 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
Nov 13 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
vue elementUI表格控制对应列
Apr 13 Vue.js
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
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JS Array对象入门分析
2008/10/30 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Python数据类型详解(四)字典:dict
2016/05/12 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
大学信息公开实施方案
2014/03/09 职场文书
进口业务员岗位职责
2014/04/06 职场文书
2014年师德承诺书
2014/05/23 职场文书
合作合同协议书范本
2015/01/27 职场文书
教师个人师德总结
2015/02/06 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫