这篇文章介绍了 js 函数排序的代码,有需要的朋友可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
- var as = [1, 2, 11, 3434, 3, 4545, 33, 55, 0];
- as.sort(); //这个排序是按照字典排序
- //自定义按照数字排序
- function sortByNum(a, b) {
- return parseInt(a) - parseInt(b);
- }
- as.sort(sortByNum);
- //按照对象来排序
- //定义一个person对象
- function Person(name.age) {
- this.name = name;
- this.age = age;
- }
- var p1 = new Person("zhang1", 11);
- var p2 = new Person("zhang2", 1);
- var p3 = new Person("zhang3", 18);
- var p4 = new Person("zhang4", 13);
- var ps = [p1, p2, p3, p4];
- function sortByName(obj1, obj2) {
- if (obj1.name > obj2.name) {
- return 1
- }
- else if (obj1.name == obj2.name) {
- return 0
- }
- else {
- return - 1
- }
- }
- function sortByAge(obj1, obj2) {
- return obj1.age - obj2.age;
- } ps.sort(sortByName) //按照名字排序
- ps.sort(sortByAge) //按照年龄排序
以上排序带来的问题就是假设对象有很多属性,那么我们程序就要为多少属性分别去设置排序的规则。所以就有了如下方法:
- function sortByProperty(proName) {
- var sortFun = function(obj1, obj2) {
- if (obj1[proName] > obj2[proName]) {
- return 1
- } else if (obj1[proName] == obj2[proName]) {
- return 0
- } else {
- return - 1
- }
- }
- return sortFun;
- }
来源: