·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3数组Array sort属性的问题详细介绍(2)

时间:2012-09-07 08:42blueidea
下例是手册中的将sort()方法与自定义排序函数 (sortOnPrice) 一起使用,该函数按 price 排序,而不是按字母顺序排序。 请注意,新函数getPrice()将提取 price。 以下Main.as可作为文档类测试: package { importfla

  下例是手册中的将sort()方法与自定义排序函数 (sortOnPrice) 一起使用,该函数按 price 排序,而不是按字母顺序排序。 请注意,新函数getPrice()将提取 price。
  以下Main.as可作为文档类测试:

  1. package  
  2. {  
  3. import flash.display.Sprite;  
  4. /**  
  5. * ...  
  6. * @author zt  
  7.  
  8. */  
  9. public class Main extends Sprite  
  10. {  
  11. var vegetables:Array = new Array();  
  12. public function Main() {  
  13. vegetables.push(new Vegetable("lettuce", 1.49));  
  14. vegetables.push(new Vegetable("spinach", 1.89));  
  15. vegetables.push(new Vegetable("asparagus", 3.99));  
  16. vegetables.push(new Vegetable("celery", 1.29));  
  17. vegetables.push(new Vegetable("squash", 1.44));  
  18. trace(vegetables);  
  19. // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44  
  20. vegetables.sort(sortOnPrice);  
  21. trace(vegetables);  
  22. // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99  
  23. }  
  24. private function sortOnPrice(a:Vegetable, b:Vegetable):Number {  
  25. var aaPrice:Number = a.getPrice();  
  26. var bbPrice:Number = b.getPrice();  
  27.  
  28. if(aPrice > bPrice) {  
  29. return 1;  
  30. } else if(aPrice < bPrice) {  
  31. return -1;  
  32. } else {  
  33. //aPrice == bPrice  
  34. return 0;  
  35. }  
  36. }  
  37. }  
  38. }  
  39. class Vegetable {  
  40. private var name:String;  
  41. private var price:Number;  
  42. public function Vegetable(name:String, price:Number) {  
  43. this.name = name;  
  44. this.price = price;  
  45. }  
  46. public function getPrice():Number {  
  47. return price;  
  48. }  
  49. public function toString():String {  
  50. return " " + name + ":" + price;  
  51. }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器