标签:排序 javascrip rtc json rip code john local 总结
前几天在工作碰到一个json对象排序的问题,一直认为JavaScript不能进行对象的排序,其实并不是,今天就来总结下常见的几种简单排序:
第一类 纯数字;
var arrOld = [4,10,9,1,0,31];
var arrNew = arrOld.sort(sortNum); function sortNum (a,b){ return a-b;
} //输出结果:[0, 1, 4, 9, 10, 31]
sort() 方法用于对数组的元素进行排序,在原数组上进行排序,不生成副本。默认安装字符编码的顺序进行排序,如果想按其他标准排序就需要提供比较函数,sortNum() 就是进行数字排序的函数。
第二类 英文字母;
var arrOld = ["John","Alley","Selina","Yuan","Delia"]; var arrNew = arrOld.sort(); //["Alley", "Delia", "John", "Selina", "Yuan"]
这个就比较简单了,sort排序即可
第三类 中文汉字,还是直接上代码;
var arrOld = ["张三","李四","王五","安利","蔡敏"]; var arrNew = arrOld.sort(sortChiese); function sortChiese(param1,param2){ return param1.localeCompare(param2); } //["安利", "蔡敏", "李四", "王五", "张三"]
localeCompare() 按照本地特定的顺序进行比较
第四类 对象类的排序,也是本次的重点;
var arrOld = {"msg":[{"num": 10,"姓名":"张三","性别":"男","年龄":15},
{"num": 1,"姓名":"李四","性别":"男","年龄":25}, {"num": 22,"姓名":"王五","性别":"女","年龄":20}, {"num": 9,"姓名":"马六","性别":"男","年龄":15}, {"num": 32,"姓名":"朱琪","性别":"女","年龄":15}]}; var arrNew = bubbleSort(arrOld.msg); function bubbleSort(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i].num>arr[j].num){//如果前面的数据比后面的大就交换 var temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } return arr; }
举一反三,我们就能通过上面三种简单的排序思路对姓名、性别、年龄等进行排序了。这里引用的是冒泡排序,当然也可以使用其他排序方法。
标签:排序 javascrip rtc json rip code john local 总结
原文地址:http://www.cnblogs.com/superior0325/p/6781517.html