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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
javascript下过滤数组重复值的代码
Sep 10 Javascript
原生js 秒表实现代码
Jul 24 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
元素全屏的设置与监听实例
Nov 28 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
vue.js实现插入数值与表达式的方法分析
Jul 06 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
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防注入漏洞过滤函数代码
2012/04/11 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
python中字符串类型json操作的注意事项
2017/05/02 Python
python的mysqldb安装步骤详解
2017/08/14 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
Python多线程获取返回值代码实例
2020/02/17 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
金融专业个人求职信范文
2013/11/28 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
保证书格式范文
2014/04/28 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
vue 给数组添加新对象并赋值
2022/04/20 Vue.js