zoukankan      html  css  js  c++  java
  • js对JSON数据排序

    一、适用于数字排序和字幕排序
    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');

  • 相关阅读:
    ETL开发
    ETL 运行维护
    软件开发的核心
    索引的本质
    也谈谈学习
    oracle内部结构
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher H
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher :G
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher F
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher E
  • 原文地址:https://www.cnblogs.com/jiqiyoudu/p/4686378.html
Copyright © 2011-2022 走看看