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

一.  知识准备: 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;
        }
时间: 2024-08-08 13:54:09

Js实现根据某个字段对Json数据进行排序的相关文章

漂亮的表格样式;jQuery清楚表格所有行;js解析后台传过来的JSON数据;动态生成表格数据

一 : 先看看漂亮的表格 css代码: .mylist { width: auto; height:auto; border:1px solid #accdf4; margin-top:10px; font-family:"宋体"; font-size:12px; color:#155c9f; text-align:center; border-collapse: collapse; } .mylist th { background-color:#d0e4ff; text-align

6.Knockout.Js(加载或保存JSON数据)

前言 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地存储需要序列化数据),交换数据最方便的就是使用JSON格式 – 大多数的Ajax应用程序也是使用这种格式. 加载或保存数据 Knockout不限制你用任何技术加载和保存数据.你可以使用任何技术和服务器来交互.用的最多的是使用jQuery的Ajax帮助,例如:getJSON,post和ajax.你可以通过这些方法从服务器端获取数据: $.getJSON("/some/url"

js:使用angular的http获取json数据

一,本例中使用amaze的select框架,配合angular显示json数据 框架官网链接:http://amazeui.org/javascript/selected 由于页面的异步刷新导致select配置完成后不再接收angular的数据,导致数据无法显示,这里解决使用setTimeout延迟select框架的配置 完成angular数据的植入 1,使用的json数据: 2,具体实现代码: <!DOCTYPE html> <html> <head lang="

对json数据进行排序

项目有这样一个需要对数据库取出的数据按sort字段进行显示:这个时候想起来在JS中对json数据进行一个排序再进行数据填充可以实现此效果 1 var colId = "sort";//json排序字段 2 //对json进行降序排序函数 3 var desc = function(x,y){ 4 return (x[colId] < y[colId]) ? 1 : -1 5 } 6 //对json进行升序排序函数 7 var asc = function(x,y){ 8 retu

js如何把字符串转换成json数据的方法

function strtojson(str){ var json = eval('(' + str + ')'); return json; } 方法二 function strtojson(str){ var json = (new function("return " + str))(); return json; } 方法三 function strtojson(str){ return json.parse(str); }

js使用sort将JSON数据进行排序

在把数据通过Echarts展示成统计图模式时,柱状统计图需要将数据进行从大到小来排序! 下面为所需要的数据: 1 { 2 mapData: [ 3 {name: '北京',value: '555'}, 4 {name: '天津',value: '1000'}, 5 {name: '上海',value: '100'}, 6 {name: '重庆',value: '100'}, 7 {name: '河北',value: '600'}, 8 {name: '河南',value: '400'}, 9 {

JSON数据Key排序

/// <summary> /// JSON格式化重新排序 /// </summary> /// <param name="jobj">原始JSON JToken.Parse(string json);</param> /// <param name="obj">初始值Null</param> /// <returns></returns> public static s

easyUI-combobox 后台导入Json数据的方法

一.前台页面: <input id="List" class="easyui-combobox" data-options="valueField:'ID',textField:'NAME'" style="width: 170px;height:25px;"/> 二.JS代码: $.ajax({ url:baseCtx+"/actions/getListInfo.action",//获取数据库

java连接MySQL数据库 json数据前后端交互

先在下图文件夹中导入相应的jar包,其中第一个红框中的是使用json数据必须导入的两个包,上面5个jar包也是json包,看情况添加,第二个红框是用JDBC连接MySQL数据库必须的包. 连接MySQL的工具类: package com.XXXXXX.util; import java.sql.Connection; import java.sql.DriverManager; public class MysqlUtil { private static Connection conn = n