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 escape,unescape解决中文乱码问题的方法
May 26 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
js如何判断不同系统的浏览器类型
Oct 28 Javascript
jQuery响应enter键的实现思路
Apr 18 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 Javascript
js实现百度搜索提示框
Feb 05 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
Javascript之String对象详解
2016/06/08 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
vc6编写python扩展的方法分享
2014/01/17 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python的concat等多种用法详解
2018/11/28 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
总会计师岗位职责
2014/02/19 职场文书
硕士生工作推荐信
2014/03/07 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
员工安全责任书范本
2014/07/24 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python