Posted in Javascript onJuly 01, 2013
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; }
js函数排序的实例代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@