Существует ли метод в ActionScript для поиска в массиве и возврата первого индекса, элемент которого> some #? - PullRequest
2 голосов
/ 16 ноября 2011

Используя ActionScript 3, предположим, у меня есть массив чисел, скажем: 1, 2, 3, 4, 5. Есть ли способ легко найти этот массив и вернуть индекс, соответствующий элементу, который> = 2,5 (что будет, 3, в данном случае), например? Я реализую это с помощью цикла while и for, и кажется довольно многословным. Думал, что уже может быть метод для этого, но не наткнулся на это в:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#every()

В противном случае, каким был бы простой способ добиться этого?

В случае, если это поможет, я воспользуюсь этим для реализации математической процедуры прямой линейной интерполяции, предполагая, что ее еще не существует, о которой я не знаю.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Я не знаю ни одного firstIndexOf в ActionScript.

Вы можете добавить его в класс 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;
}
0 голосов
/ 16 ноября 2011
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]
...