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 相关文章推荐
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
Mar 12 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
Dec 19 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
解决JS无法调用Controller问题的方法
Dec 31 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
javascript执行环境及作用域详解
May 05 Javascript
微信小程序 location API实例详解
Oct 02 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
修改vue+webpack run build的路径方法
Sep 01 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 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
根德YB400的电路分析
2021/03/02 无线电
社区(php&amp;&amp;mysql)六
2006/10/09 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python绘制直线的方法
2018/06/30 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
详解Anaconda 的安装教程
2020/09/23 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
PHP中如何使用Cookie
2015/10/28 面试题
导游词之山西-五老峰
2019/10/07 职场文书
创业计划书之农家乐
2019/10/09 职场文书
PL350与SW11的比较
2021/04/22 无线电
JavaScript设计模式之原型模式详情
2022/06/21 Javascript