JS_数组排序
1、
数组 随机插入元素,没有原生函数,自己实现起来比较麻烦,还要考虑效率问题...
于是,元素数量少的话,自己弄弄;元素数量多的话,还是先把元素都插入进去,然后再排序吧...
2、
Array.sort([可选]自定义的排序函数);
2.1、
测试代码:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html> 4 5 <style type="text/css"> 6 </style> 7 8 <script type="text/javascript" > 9 10 function Tobj() 11 { 12 this.Fi = 0; 13 this.Fj = 0; 14 } 15 16 window.onload = function() 17 { 18 var objs = []; 19 20 var obj01 = new Tobj(); 21 obj01.Fi = 10; 22 obj01.Fj = 15; 23 24 var obj02 = new Tobj(); 25 obj02.Fi = 5; 26 obj02.Fj = 25; 27 28 var obj03 = new Tobj(); 29 obj03.Fi = 12; 30 obj03.Fj = 130; 31 32 var obj04 = new Tobj(); 33 obj04.Fi = 20; 34 obj04.Fj = 10; 35 36 var obj05 = new Tobj(); 37 obj05.Fi = 12; 38 obj05.Fj = 10; 39 40 objs.push(obj01); 41 objs.push(obj02); 42 objs.push(obj03); 43 objs.push(obj04); 44 objs.push(obj05); 45 46 for (var i=0; i<objs.length; i++) 47 { 48 console.log(objs[i].Fi+" , "+objs[i].Fj); 49 } 50 51 console.log(""); 52 53 objs.sort(SortZ01); 54 55 for (var i=0; i<objs.length; i++) 56 { 57 console.log(objs[i].Fi+" , "+objs[i].Fj); 58 } 59 60 console.log(""); 61 62 objs.sort(SortZ02); 63 64 for (var i=0; i<objs.length; i++) 65 { 66 console.log(objs[i].Fi+" , "+objs[i].Fj); 67 } 68 }; 69 70 function SortZ01(_obj1, _obj2) 71 { 72 return (_obj1.Fi - _obj2.Fi); 73 } 74 // ZC: 貌似返回值 >0,_obj1就往后移,<0反之 。 75 76 function SortZ02(_obj1, _obj2) 77 { 78 console.log("==> "+_obj1.Fi +" , "+ _obj2.Fi); 79 if (_obj1.Fi == _obj2.Fi) 80 { 81 return (_obj1.Fj - _obj2.Fj); 82 83 } 84 else 85 { 86 return (_obj1.Fi - _obj2.Fi); 87 } 88 89 } 90 91 </script> 92 93 </html>
3、