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

1 回答 1

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。我们可以将它与数组索引访问器语法(使用方括号[])结合使用,以轻松找到正确的值。

于 2013-05-14T04:41:38.550 回答