2016-05-21 86 views
0
var a:Object =({label:"2008",n:8560,i:15909}); 
var b:Object ={(label:"2009",n:8146,i:14197}); 

可以說我在列表組件中有五個對象與此類似。是否有可能打印出具有最低值n的項目的標籤的功能?我需要做些什麼才能做到這一點?AS3將最低值打印到動態文本字段

回答

2

排序使用Array.sortOn()你想第一場(N在這種情況下),然後訪問和打印:

var arrayToSort:Array = [{label:"2008",n:8560,i:15909},{label:"2009",n:8146,i:14197}]; 
var sortedArray = arrayToSort.sortOn ("n" , Array.NUMERIC); 
trace(sortedArray[0].label); 
+0

我試過,但它不能正常工作。跟蹤顯示2008年,但2008年的n值超過2009年。 – elektroluse

+0

ooopse,已更新,如果要訪問第一個元素,它應該數組數值(升序)。 Array.DESCENDING也沒有錯,只需選擇最後一個元素[數組長度-1]而不是0 –

+0

感謝它現在完美的作品,但有一件事我不明白。爲什麼n在類型中作爲一個字符串sortOn? – elektroluse

0
public function findMax(o:Object):String { 
    var lowest:Number = Number.MAX_VALUE; 
    var lowestLabel:String; 
    for (var label:String in o) { 
     var val:Number = o[label]; 
     if (val != null && val < lowest) { 
      lowest = val; 
      lowestLabel = label; 
     } 
    } 
    return lowestLabel; 
}