码迷,mamicode.com
首页 > 编程语言 > 详细

Js实现根据某个字段对Json数据进行排序

时间:2015-11-23 16:32:34      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

一.  知识准备: js中内置的 sort() 方法 (如果你对此方法已经很了解,请跳过此节)

 

此方法默认是按字母顺序对数组中的元素进行排序的,说得更精确点,是按照字符编码的顺序进行排序。

看如下例子:

技术分享

当数组中元素为 数字类型 时,排序结果与我们设想的完全不同,因为默认是按照字符编码的顺序进行排序的。

 

解决方案:sort() 方法接收一个可选参数(此参数必须是函数),我们可以自己定义排序规则,如下图

技术分享

 

二.  对 json 排序的具体实现

        /*
         * @description        根据某个字段实现对json数组的排序
         * @param     array    要排序的json数组对象
         * @param     field    排序字段(此参数必须为字符串)
         * @param     reverse  是否倒序(默认为false)
         * @return    array    返回排序后的json数组
        */
        function jsonSort(array, field, reverse) {

            //数组长度小于2 或 没有指定排序字段 或 不是json格式数据
            if(array.length < 2 || !field || typeof array[0] !== "object") return array;

            //数字类型排序
            if(typeof array[0][field] === "number") {
                array.sort(function(x, y) { return x[field] - y[field]});
            }

            //字符串类型排序
            if(typeof array[0][field] === "string") {
                array.sort(function(x, y) { return x[field].localeCompare(y[field])});
            }

            //倒序
            if(reverse) {
                array.reverse();
            }

            return array;
        }

Js实现根据某个字段对Json数据进行排序

标签:

原文地址:http://www.cnblogs.com/similar/p/4988467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!