我有一个无序的数组,我无法排序。不是因为我不能,因为它的顺序对应用程序至关重要。不知道我当前拥有的元素的索引,如何找到它后面的元素?
到目前为止我设计的内容:
/**
* @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中可用的选项。
谢谢!
答案 0 :(得分: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。我们可以将它与数组索引访问器语法(使用括号[]
)结合使用,以便轻松找到正确的值。