方法

/**  根据某个字段实现对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;
}

知识点

localeCompare()

  • 定义和用法
    用本地特定的顺序来比较两个字符串。

  • 语法
    stringObject.localeCompare(target)

  • 参数

参数 描述
target 要以本地特定的顺序与 stringObject 进行比较的字符串。
  • 返回值
    说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

  • 说明
    把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

  • localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

sort()

  • 定义和用法
    sort() 方法用于对数组的元素进行排序。

  • 语法
    arrayObject.sort(sortby)

  • 参数

参数 描述
sortby 可选。规定排序顺序。必须是函数。
  • 返回值
    对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

  • 说明
    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

    • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    • 若 a 等于 b,则返回 0。
    • 若 a 大于 b,则返回一个大于 0 的值。

reverse()

  • 定义和用法
    reverse() 方法用于颠倒数组中元素的顺序。

  • 语法
    arrayObject.reverse()

  • 提示和注释
    注释:该方法会改变原来的数组,而不会创建新的数组。

实例

初始数据

排序后

Javascript:json数据根据某一个字段进行排序相关推荐

  1. java中list里面存放map,根据map中的某一个字段进行排序

    Java中list里面存放map,根据map中的某一个字段进行排序 例如: [java] view plaincopy package com; import java.util.ArrayList; ...

  2. js判断json有没有某值_JS中判断JSON数据是否存在某字段的方法 JavaScript中判断json中是否有某个字段...

    方式一 !("key" in obj) 方式二 obj.hasOwnProperty("key")  //obj为json对象. 实例: var jsonwor ...

  3. JavaScript——JSON数据和解析

    1.JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式.它基于 ECMAScript(European Computer Manufacture ...

  4. Gson解析JSON数据中动态未知字段key的方法

    转载自:https://blog.csdn.net/jdsjlzx/article/details/76785239 有时在解析json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的 ...

  5. JSON数据解析生成一个每行10列,行数不固定的表格

    JSON数据 {"data":["金背大砍刀", "门扇大刀", "齐凤朝阳刀", "象鼻古月刀", ...

  6. mysql存储过程更新数据后返回一个字段_史上最全存储引擎、索引使用及SQL优化的实践...

    整个MySQL Server由以下组成 : Connection Pool :连接池组件 Management Services & Utilities :管理服务和工具组件 SQL Inte ...

  7. 解决后台json数据返回的字段需要替换的问题

    有时候后台json数据返回的字段含有"id",也有可能是有时候为了减少代码的冗余,两页面之间只是数据模型个别属性的区别,所以这时候最好是用到模型属性的替换,用新的属性替换返回的js ...

  8. 如何解析json字符串及返回json数据到前端

    前言:最近需要实现的任务是:写若干个接口,并且接口中的请求数据是json格式,然后按照请求参数读取前端提前整理好的json数据,并且将json数据返回到服务器端. 主要的工具:Gson  2.8.2 ...

  9. 修改软件服务器json返回数据格式,AngularJS处理服务器端返回的JSON数据的格式问题...

    用ng的$http服务发起ajax请求,php返回的JSON数据格式要正确! 一开始我的php页面是这样返回数据的: if($result){ $oid = mysqli_insert_id($con ...

  10. fullcalendar php,日历插件fullcalendar+php的使用教程 — 读取json数据

    根据FullCalendar日历插件说明文档中的介绍,日历主体事件数据的来源有三,一是直接以javascript数组的形式显示日历事件,二是获取JSON数据形式显示日历事件,三是函数回调的形式显示日历 ...

最新文章

  1. Netflix的高可用架构建议
  2. 禁用windows更新完成后的重启提示
  3. 成都python培训比较好的机构-成都Python培训班哪个好,怎样才能不走弯路学习
  4. 计算机二进制加减符号,(带符号的二进制数的表示方法及加减法运算).ppt
  5. 云南省2021高考成绩排名查询,2020年云南高考成绩位次排名及一分一段表查询
  6. Java程序员转Android开发必读经验
  7. WINHEX的比较、同步功能加上NTFS对稀疏文件的支持
  8. 再深入 HTTP Referer【转】
  9. k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
  10. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。
  11. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常...
  12. hdu 1561 The more, The Better (依赖背包 树形dp)
  13. form表单file,select选择后自动提交
  14. 微信开发者工具如何使用SCSS和配置wxml文件高亮及格式化
  15. CSS动画入门:一分钟实现球体上下跳动动画效果
  16. inux命令大全完整版
  17. codevs 切糕 网络流
  18. IntellijIdea2018 Liscense server激活码
  19. elasticsearch索引、文档、映射等概念
  20. K-Means聚类及调用sklearn库代码实现

热门文章

  1. 42.mysqldump
  2. 1.UNIX 环境高级编程--UNIX基础知识
  3. java中使用switch case报错case expressions must be constant expres
  4. [LeetCode] 47. Permutations II_Medium tag: DFS, backtracking
  5. JavaScript DOM(一)
  6. NIO Channel Scatter/Gather 管道Pipe类
  7. 开源一个适用iOS的数据库表结构更新机制的代码
  8. 冲刺周期一--站立会议05
  9. 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
  10. Go开源项目 - gorp使用方法