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访问样式表代码
Oct 15 Javascript
js怎么判断flash swf文件是否加载完毕
Aug 14 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
Dec 02 Javascript
Node.js制作简单聊天室
Jan 12 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
Angular开发实践之服务端渲染
Mar 29 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
Layui Form 自定义验证的实例代码
Sep 14 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 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
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
再论Javascript的类继承
2011/03/05 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
js实现简单计算器
2015/11/22 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python变量的存储原理详解
2019/07/10 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Python修改DBF文件指定列
2020/12/19 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
英语专业学生的自我评价
2013/12/30 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
企业员工辞职信范文
2015/05/12 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js