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 相关文章推荐
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
Jun 29 Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
JavaScript数字和字符串转换示例
Mar 26 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
微信小程序 setData使用方法及常用错误解决办法
May 11 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
Dec 26 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
Sep 19 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
element 动态合并表格的步骤
Dec 31 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 文件上传全攻略
2010/04/28 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
javascript与cookie 的问题详解
2013/11/11 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
Python3实现Web网页图片下载
2016/01/28 Python
python os.path模块常用方法实例详解
2018/09/16 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Python如何访问字符串中的值
2020/02/09 Python
opencv+python实现均值滤波
2020/02/19 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
临床医学专业个人的自我评价
2013/09/27 职场文书
自荐信结尾
2013/10/27 职场文书
简单英文演讲稿
2014/01/01 职场文书
四个太阳教学反思
2014/02/01 职场文书
绿色学校实施方案
2014/03/31 职场文书
培训协议书范本
2014/04/22 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
《日月潭》教学反思
2016/02/20 职场文书
redis中lua脚本使用教程
2021/11/01 Redis