<pre name="code" class="javascript"> //測試數據 var data = [{name:"zhangsan",age:21},{name:"lisi",age:22},{name:"wangwu",age:19}]; function createComparisonFunction(propertyName,orderBy_DESC){ return function (object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(orderBy_DESC){//降序 if(value1>value2){ return -1; }else if(value1<value2){ return 1; }else{ return 0; } }else{//默認升序 if(value1<value2){ return -1; }else if(value1>value2){ return 1; }else{ return 0; } } } } //指定排序方式,我這裏是按照名字降序,第二個參數有值則降序,只傳入第一個參數則升序 data.sort(createComparisonFunction("name",1)) //打印結果 for(var i = 0 ;i<data.length;i++){ document.write(data[i].name+"\n\n"); }