As3 array sorton方法

出自Geckos wiki

跳转到: 导航, 搜索

Array 的 sortOn方法蛮实用的,对效率要求不高的排序还是很管用的

   var a:Array = [{v:1}, {v:10}, {v:3}, {v:2}, {v:2}, {v:5}];
   a.sortOn("v", Array.NUMERIC);

这个是对数组中对象v的属性进行升序排序。 如果你想对一个对象里多个属性排序的话可以(也就是先对v进行排序,然后在先前排序的基础上对f进行排序)

   a.sortOn(["v", "f"], Array.NUMERIC);

如果对v是升序,对f是降序可以

   a.sortOn(["v", "f"], [Array.NUMERIC, Array.NUMERIC | Array.DESCENDING]);

注意到 Array.NUMERIC | Array.DESCENDING 为啥不直接用Array.DESCENDING,因为它的排序是按照字符串来排的,上面的例子里面有10和1,它在降序的时候会先看第一位谁大,因为都是1就看作是一样大,然后再看第二位,这样来比较的,所以会出现

   5
   3
   2
   2
   10
   1

这样一个现象。所以要在把数字和降序组合在一起才能按照数字的方式来排列。

个人工具
名字空间
变换
动作
导航
工具箱