Actionscript 3 ActionScript中是否已存在用于搜索数组并返回元素为>;的第一个索引的方法;一些?
使用ActionScript3,假设我有一个数字数组,比如:1,2,3,4,5。例如,是否有一种方法可以轻松搜索此数组并返回与>=2.5的元素(在本例中为3)对应的索引?我用while和for循环来实现这个,看起来很冗长。我认为可能已经有了一种方法,但没有在以下方面偶然发现: 否则,实现这一目标的简单方法是什么Actionscript 3 ActionScript中是否已存在用于搜索数组并返回元素为>;的第一个索引的方法;一些?,actionscript-3,apache-flex,actionscript,Actionscript 3,Apache Flex,Actionscript,使用ActionScript3,假设我有一个数字数组,比如:1,2,3,4,5。例如,是否有一种方法可以轻松搜索此数组并返回与>=2.5的元素(在本例中为3)对应的索引?我用while和for循环来实现这个,看起来很冗长。我认为可能已经有了一种方法,但没有在以下方面偶然发现: 否则,实现这一目标的简单方法是什么 如果它有帮助,我将使用它来实现一个直接的线性插值数学例程,假设一个我不知道的例程还不存在。我不知道ActionScript中有任何firstIndexOf var t:Array =
如果它有帮助,我将使用它来实现一个直接的线性插值数学例程,假设一个我不知道的例程还不存在。我不知道ActionScript中有任何firstIndexOf
var t:Array = [4,9,1,2,3,5,6];
function something(base:Number, array:Array):int
{
var t:Array = array.slice();
var h:Number = int.MAX_VALUE;
var i:int = -1;
while(t.length > 0)
{
var l:Number = t.pop();
if(l >= base)
{
if(h > l)
{
h = l;
i = t.length;
}
}
}
return i;
}
trace(something(2, t)); // at index [3]
您可以将其添加到ArrayUtil类:
给定阵列:
var array:Array = [ 1, 2, 3, 4, 5 ];
将其传递给ArrayUtil函数:
public static function firstIndexOf(array:Array, value:Number):int
{
for(var i:uint = 0; i < array.length; i++)
{
if(array[i] >= value)
return i;
}
// if not found, return -1
return -1;
}
公共静态函数firstIndexOf(数组:数组,值:Number):int
{
对于(变量i:uint=0;i=值)
返回i;
}
//如果未找到,则返回-1
返回-1;
}
谢谢Marty,我没有想过像这样使用pop。除非你的数组大得离谱和/或运行得非常频繁,否则我认为你不会遇到任何问题。哎呀,我忘了添加-1返回值,以防集合中没有更大的值。也许这应该以不同的名称命名-firstIndexGreater比(…)为了完整性,我认为For循环赋值应该扩展到(array.length-1),因为索引从0开始。I