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 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
浅谈AngularJs指令之scope属性详解
Oct 24 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 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
PHP中的extract的作用分析
2008/04/09 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python 元类使用说明
2009/12/18 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
论文指导教师评语
2014/04/28 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
Python 全局空间和局部空间
2022/04/06 Python