2013-05-14 26 views
0

我有一個我無法排序的無序數組。不是因爲我不能,因爲它的順序對於應用程序很重要。不知道當前元素的索引,我如何找到它後面的元素?查找無序數組中的下一個元素

我迄今設計:

/** 
* @return int - the ID || -1 for out of bounds 
*/ 
public function getNextID(currentID:int):int{ 
    var found:Boolean = false; 
    for each(var id:int in mIDs){ 
     if(found){ 
      return id; 
     } 
     if(id == currentID){ 
      found = true; 
     } 
    }return -1; 
} 

我只是問這個,因爲我正在尋找一個更好的解決方案,可能不要求一個循環,並有興趣更好地教育自己上的可用選項在AS3。

謝謝!

回答

4

嘗試這種情況:

public function getNextID(currentID:int):int { 
    var index:int = mIDs.indexOf(currentID); 
    if (index == -1 || index + 1 >= mIDs.length) return -1; 
    return mIDs[index + 1]; 
} 

indexOf函數獲取第一索引對應於所述搜索參數在數組中。如果它不存在,則返回-1。我們可以將其與數組索引訪問器語法(使用括號[])一起使用,以輕鬆找到正確的值。

+0

不錯的工作傑克! – BajaBob 2013-05-16 13:55:16