自己写的两维数组排序--快速排序实现
1 /**
2 * 对两维数组排序
3 *
4 *@var arr array 数组对象
5 *@var sortKey int|String 排序key
6 *@var sortOrder asc|desc
7 *
8 */
9 function sortArray(arr,sortKey,sortOrder){
10 if(!sortOrder){
11 sortOrder = 'asc';
12 }
13 var item = null;
14 //快速排序法
15 for(var i=0,len=arr.length; i <len; i++ ){
16 for(var j=i+1; j<len; j++){
17 if( needSwitch(arr[i],arr[j]) ){
18 item = arr[i];
19 arr[i] = arr[j];
20 arr[j] = item;
21 }
22 }
23 }
24 return arr;
25
26
27 function needSwitch(item1,item2)
28 {
29 for(var k in item1){
30 if(k == sortKey){
31 if(sortOrder.toLowerCase() == 'asc'){
32 return parseFloat(item1[k]) > parseFloat(item2[k]);
33 }else{
34 return parseFloat(item1[k]) < parseFloat(item2[k]);
35 }
36 }
37 }
38 }
39 }
2 * 对两维数组排序
3 *
4 *@var arr array 数组对象
5 *@var sortKey int|String 排序key
6 *@var sortOrder asc|desc
7 *
8 */
9 function sortArray(arr,sortKey,sortOrder){
10 if(!sortOrder){
11 sortOrder = 'asc';
12 }
13 var item = null;
14 //快速排序法
15 for(var i=0,len=arr.length; i <len; i++ ){
16 for(var j=i+1; j<len; j++){
17 if( needSwitch(arr[i],arr[j]) ){
18 item = arr[i];
19 arr[i] = arr[j];
20 arr[j] = item;
21 }
22 }
23 }
24 return arr;
25
26
27 function needSwitch(item1,item2)
28 {
29 for(var k in item1){
30 if(k == sortKey){
31 if(sortOrder.toLowerCase() == 'asc'){
32 return parseFloat(item1[k]) > parseFloat(item2[k]);
33 }else{
34 return parseFloat(item1[k]) < parseFloat(item2[k]);
35 }
36 }
37 }
38 }
39 }