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 相关文章推荐
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
JS中的log对象获取以及debug的写法介绍
Mar 03 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
jquery移动端TAB触屏切换实现效果
Dec 22 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
js格式化时间的方法
Dec 18 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
微信小程序关键字变色实现代码实例
Dec 13 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函数
2006/10/09 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
Python中的面向对象编程详解(下)
2015/04/13 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Python @property装饰器原理解析
2020/01/22 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Python 存取npy格式数据实例
2020/07/01 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
python解包概念及实例
2021/02/17 Python
警察先进个人事迹材料
2014/05/16 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
售票员岗位职责
2015/02/15 职场文书
会计求职信怎么写
2015/03/20 职场文书
基层党支部承诺书
2015/04/30 职场文书
刮痧观后感
2015/06/05 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers