JavaScript按純數字排序
阿新 • • 發佈:2018-02-08
.so -s 乒乓球 return clas turn com java alt
直接上代碼:
1 var arr=[ 2 {name:"張散步",age:"23",sports:"籃球",number:"231123"}, 3 {name:"李斯的",age:"3",sports:"鋼琴",number:"534563"}, 4 {name:"艾倫",age:"63",sports:"排球",number:"345455"}, 5 {name:"王武",age:"33",sports:"乒乓球",number:"867324"}, 6 {name:"乏力",age:"26",sports:"足球",number:"132457"}7 ]; 8 9 //單一的數字排序 10 //console.log(arr.sort(sortDownAge));//正序 11 //console.log(arr.sort(sortUpAge));//反序 12 13 14 //靈活的數字多排序 15 //console.log(sortDownNumber(arr,"age"));//正序 16 //console.log(sortUpNumber(arr,"age"));//反序 17 // 18 //console.log(sortDownNumber(arr,"number"));//正序19 //console.log(sortUpNumber(arr,"number"));//反序 20 21 22 23 24 25 //單一的純數字排序,上方是正序,下方是反序 26 function sortDownAge(a, b) { 27 return a.age - b.age 28 } 29 30 function sortUpAge(a, b) { 31 return b.age - a.age32 } 33 34 //純數字靈活排序 35 /*數字正排序 36 * 37 * data:對象數組 38 * p:排序的參數 39 * 40 * */ 41 function sortDownNumber(data, p) { 42 for (i = 0; i < data.length - 1; i++) { 43 for (j = 0; j < data.length - 1 - i; j++) { 44 if (parseFloat(data[j][p]) > parseFloat(data[j + 1][p])) { 45 var temp = data[j]; 46 data[j] = data[j + 1]; 47 data[j + 1] = temp; 48 } 49 } 50 } 51 return data; 52 } 53 54 55 /*數字反排序 56 * 57 * data:對象數組 58 * p:排序的參數 59 * 60 * */ 61 function sortUpNumber(data, p) { 62 for (i = 0; i < data.length - 1; i++) { 63 for (j = 0; j < data.length - 1 - i; j++) { 64 if (parseFloat(data[j][p]) < parseFloat(data[j + 1][p])) { 65 var temp = data[j]; 66 data[j] = data[j + 1]; 67 data[j + 1] = temp; 68 } 69 } 70 } 71 return data; 72 }
分別顯示的結果如下截圖:
1、單一的數字排序,左側是正序(arr.sort(sortDownAge)),右側是反序(arr.sort(sortUpAge))
2、靈活的數字多排序,左側是年齡正序(sortDownNumber(arr,"age")),右側是年齡反序(sortUpNumber(arr,"age"))
3、靈活的數字多排序,左側是number正序(sortDownNumber(arr,"number")),右側是number反序(sortUpNumber(arr,"number"))
這是其他排序的方法,歡迎查看,歡迎給意見!
按JavaScript日期排序
按JavaScript非數字(中文)排序
JavaScript按純數字排序