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、

 

posted @ 2016-03-17 16:52  Html5Skill  阅读(343)  评论(0编辑  收藏  举报