2011-05-04 80 views
1

我已經創建了一個陣列如下所示排序一個Flex陣列

protected function getMyArray(dataArray:Array):Array 
    { 
     var labelList:Array=new Array; 
     for each (var property:Object in dataArray) 
     { 
      if (labelList[property.bucketTime] != property.bucketTime) 
       labelList[property.bucketTime]=property.bucketTime; 
     } 
     return labelList; 
    } 

是否有可能進行排序基於property.bucketTime陣列labelList?

編輯:樣品輸入dataArray中會是這樣:

var tempObj:Object = new Object; 
      tempObj.bucketTime = DateField.stringToDate("30-01-2010", "DD-MM-YYYY").time; 
      tempObj.score = 76; 
      dataArray.addItem(tempObj); 

      tempObj = new Object; 
      tempObj.bucketTime = DateField.stringToDate("13-02-2010", "DD-MM-YYYY").time; 
      tempObj.score = 21; 
      dataArray.addItem(tempObj); 

      tempObj = new Object; 
      tempObj.bucketTime = DateField.stringToDate("30-03-2010", "DD-MM-YYYY").time; 
      tempObj.score = 10; 
      tempArry.addItem(tempObj); 

回答

0

Atlast我排序了labelList Array.Please在下面找到我的解決方案。讓我知道是否有更好的方法來實現這一點。

var termObject:Object = ObjectUtil.getClassInfo(labelList); 
     var termsArray:Array = termObject.properties; 
     var sortedColumnArray:Array = new Array; 
     for each(var term:Object in termsArray){ 
      if(labelList.hasOwnProperty(term)){ 
       sortedColumnArray.push(labelList[term]); 
      } 
     } 
3

除非bucketTime是一個數字;那麼你實際上並沒有填充數組。您只需將屬性添加到Array對象,就好像它是一個Dictionary。我見過一種叫做關聯數組和其他語言結構的詞典。

如果是這樣的話,你使用Array類作爲字典,那麼就沒有辦法對它進行排序。這種結構的本質是它們不可排序。

但是,如果property.bucketTime是一個數字,並且您嘗試將數組添加到數組中,就好像它們是數組一樣,您可以使用Array.sortArray.sortOn方法進行排序。

+0

property.bucketTime是一個數字。我試過labelList.sort(Array.DESCENDING),但是數組沒有被排序。 – kbgn 2011-05-04 18:02:15

+0

@ kbgn27要麼給我們提供樣本數據,並告訴我們你看到了什麼樣的結果,你期望得到什麼結果,或給我們一個完整的可運行示例來展示你的問題,這樣我們就可以測試自己。 (或兩者都有) – JeffryHouser 2011-05-04 19:01:38

+0

@ kbgn27真的嗎? labelList.sortOn(「bucketTime」)不適合你? – 2011-05-04 19:20:59