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的树控件实现代码(asp.net+json)
Jul 11 Javascript
Eval and new funciton not the same thing
Dec 27 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
JavaScript常用工具方法封装
Feb 12 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 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笔记之:AOP的应用
2013/04/24 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php的socket编程详解
2016/11/20 PHP
php中数组最简单的使用方法
2020/12/27 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python可变参数函数用法实例
2015/07/07 Python
Python迭代和迭代器详解
2016/11/10 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Python龙贝格法求积分实例
2020/02/29 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
黄金搭档广告词
2014/03/21 职场文书
师德师风演讲稿
2014/05/05 职场文书
倡议书范文格式
2014/05/12 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
七年级上册生物的课件
2019/08/07 职场文书
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers