排序是开发中不可避免的,最近遇到一个需求需要将JSON数组排序,需求比较简单,实现起来也没什么难度,简单记录下过程:

首先我们需要明白的JavaScript本身的排序是可以传入函数比较的,数组排序如下:

var arr = [25, 2, 32, 12, 72, 51, 65, 97, 60, 20];
function descend(a, b) {
return a<b ? 1 : -1;
}
arr.sort(descend);

输出结果:

[ 97, 72, 65, 60, 51, 32, 25, 20, 12, 2 ]//博客园-FlyElephant

JSON数组和数组方法类似,对比如下:

var json = [{
name: 'keso',
age: 25
}, {
name: '博客园-FlyElephant',
age: 24
}, {
name: 'http://www.cnblogs.com/xiaofeixiang/',
age: 22
}]; function ascend(a, b) {
return (a.age > b.age) ? 1 : -1;
}
json.sort(ascend);
console.log(json);

输出结果:

[ { name: 'http://www.cnblogs.com/xiaofeixiang/', age: 22 },
{ name: '博客园-FlyElephant', age: 24 },
{ name: 'keso', age: 25 } ]

如果想更好的封装一下可以写成类的形式,类写法:

function JsonSort(obj, field, sortby) {
this.obj = obj;
this.field = field;
this.sortby = sortby;
} JsonSort.prototype.sort= function() {
var $this=this;
var ascend = function(a, b) {
return a[$this.field] > b[$this.field] ? 1 : -1;
};
var descend = function(a, b) {
return a[$this.field] > b[$this.field] ? -1 : 1;
};
if (this.sortby == "ascend") {
this.obj.sort(ascend);
} else {
this.obj.sort(descend);
}
};
var jsonSort=new JsonSort(json,'age','ascend');
jsonSort.sort();
console.log(json);

如果你有更好的方法,欢迎探讨~

JavaScript-json数组排序的更多相关文章

  1. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

  2. Json 数组排序

    /*********************************************Json 数组排序 ******************************************** ...

  3. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求

    JSON 介绍 1. JSON: JavaScript Object Notation 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是 ...

  4. JavaScript -- JSON.parse 函数 和 JSON.stringify 函数

    JavaScript -- JSON.parse 函数 和 JSON.stringify 函数 1. JSON.parse 函数: 使用 JSON.parse 可将 JSON 字符串转换成对象. &l ...

  5. 细读 php json数据和JavaScript json数据

    关于JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascript原生支持,后台语言几乎全部支持: 3.轻量级数据格式,占用字符数量极少,特别适合互联网传递: 4.可读性较强 5.容 ...

  6. JavaScript JSON AJAX 同源策略 跨域请求

    网页和Ajax和跨域的关系 1 Ajax使网页可以动态地.异步地的与服务器进行数据交互,可以让网页局部地与服务器进行数据交互 2 Ajax强调的是异步,但是会碰到跨域的问题. 3 而有很多技术可以解决 ...

  7. javascript.json snippets vscode 注释

    vscode vue js里面的注释 javascript.json { // Place your global snippets here. Each snippet is defined und ...

  8. javascript json写法

    javascript json写法 var shuxing = {name:"super",sex:"19",work:"IT"}; 这个k ...

  9. JavaScript JSON 与 AJAX

    JavaScript JSON 与 AJAX JSON 是一种轻量的数据交互格式,与 AJAX 配合完成前端页面与服务端的信息传递,本文介绍 JSON 的使用.原生 AJAX 写法.JSONP 跨域解 ...

  10. javascript json字符串与对象相互转换

    在实际项目中,经常遇到字符格式的问题,记下来以便日后方便查看.用到两个函数:JSON.stringify() 和 JSON.parse(). 使用ajax向后台请求数据,后台给前端返回数据,明明后端脚 ...

随机推荐

  1. 无线网络实体图生成工具airgraph-ng

    无线网络实体图生成工具airgraph-ng   airgraph-ng是aircrack-ng套件提供的一个图表生成工具.该工具可以根据airodump工具生成的CSV文件绘制PNG格式的图.绘制的 ...

  2. 【BZOJ 4818】 4818: [Sdoi2017]序列计数 (矩阵乘法、容斥计数)

    4818: [Sdoi2017]序列计数 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 560  Solved: 359 Description Al ...

  3. EditText 数字范围 检查string 是不是数字

    public static boolean isNumeric00(String str){ try{ Integer.parseInt(str); return true; }catch(Numbe ...

  4. Supported Values for @SuppressWarnings(转)

    Update July 2011: This list has been reviewed and made current with the most recent Eclipse 3.7 rele ...

  5. HDU 4821 String(2013长春现场赛I题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821 字符串题. 现场使用字符串HASH乱搞的. 枚举开头! #include <stdio.h ...

  6. STM32 TIMER OUTPUT DIAGRAM

  7. 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。

    集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.

  8. arcmap搜索脚本错误

    C盘/windows/temp,将temp文件夹右键单击,选择属性>选择安全>编辑>AlL APPLICATION PACKAGES>确定>关闭,如是操作即可解决 在cu ...

  9. Traceroute(路由追踪)的原理及实现

    现实世界中的网络是由无数的计算机和路由器组成的一张的大网,应用的数据包在发送到服务器之前都要经过层层的路由转发.而Traceroute是一种常规的网络分析工具,用来定位到目标主机之间的所有路由器 原理 ...

  10. SQL:获取中文周几

    ) = case DatePart(DW, GetDate()) then '周日' then '周一' then '周二' then '周三' then '周四' then '周五' then '周 ...