Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 ActionScript中是否已存在用于搜索数组并返回元素为>;的第一个索引的方法;一些?_Actionscript 3_Apache Flex_Actionscript - Fatal编程技术网

Actionscript 3 ActionScript中是否已存在用于搜索数组并返回元素为>;的第一个索引的方法;一些?

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 =

使用ActionScript3,假设我有一个数字数组,比如:1,2,3,4,5。例如,是否有一种方法可以轻松搜索此数组并返回与>=2.5的元素(在本例中为3)对应的索引?我用while和for循环来实现这个,看起来很冗长。我认为可能已经有了一种方法,但没有在以下方面偶然发现:

否则,实现这一目标的简单方法是什么


如果它有帮助,我将使用它来实现一个直接的线性插值数学例程,假设一个我不知道的例程还不存在。

我不知道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