2011-03-29 84 views
0

我有一個對象數組。我想要做的是獲取屬性等於某個值的對象的最後一個索引。AS3數組對象過濾問題

例:

// this occurs on a mouse click 
var stockObj:Object = new Object(); 
stockObj.ID = "an_id"; 
stockObj.category = "a_category"; 
array.push(stockObj); 
//psuedo 
trace(array.lastIndexOf(stockObj.category=="a_category")); 

謹以此跟蹤其category財產上的繩子等於"a_category"

回答

0
 
function searchCategory(arr:Array, cat:String):int { 
    for (var i:int = arr.length - 1; i >= 0; i--) { 
     if (arr[i].category == cat) { // assuming array objects contains category 
      return i; 
     } 
    } 

    return -1; // no match 
} 
0

搜索的最後一個索引不是一個數組對象的索引: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html#lastIndexOf%28%29

你將需要做的是通過數組,這將需要O(n)時間和比較看看哪個在該指數與類名對象「a_category」

for(int i = 0;i<array.length;i++){ 

if(array[i].category = "a_category") 
maxIndex = i; 
} 

} 

有實際上是通過obj的陣列中的所有OBJ更好的方式來循環,但我不記得了ATM希望有人可以發表評論在但我認爲它像 爲(以數組x){ ... }

反正使用的邏輯,這將是一個很多,如果你扭轉它更快,所以你在開始的結束數組並返回索引,首次出現的obj分類爲「a_category」