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 相关文章推荐
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
安装Node.js并启动本地服务的操作教程
May 12 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
Aug 09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
JS使用队列对数组排列,基数排序算法示例
Mar 02 Javascript
vue如何截取字符串
May 06 Javascript
vue实现随机验证码功能(完整代码)
Dec 10 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
mysql 字段类型说明
2007/04/27 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
详解Flask前后端分离项目案例
2020/07/24 Python
Python接口自动化测试的实现
2020/08/28 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
暑期实习鉴定
2013/12/16 职场文书
教师师德演讲稿
2014/05/06 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL