вопрос flex / actionscript - PullRequest
       4

вопрос flex / actionscript

1 голос
/ 09 июня 2011
var n:Number = 0;
[1,2,3].forEach(function (x):void {
    n+=x;
});

как это сделать во флеше?Flash выдает ошибку "функция с 3 аргументами ..." Мне нужен только один аргумент!

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Array.forEach () ожидает функцию как первый параметр, который выглядит следующим образом:

    function callbackFunc ( item:*, index:int, array:Array ) : void

Вы должны объявить в своей функции все три параметра. Так что ваши вещи должны выглядеть так:

    var n   : Number = 0;
    var arr : Array  = [1,2,3];

    arr.forEach(function (item:*, index:int, array:Array):void {
        n+=index;
        trace( "n: " + n )
    });

Вы не можете использовать форму [1,2,3] .forEach в actionscript, потому что компилятор увидит ее как неверные метаданные и выдаст ошибку.

1 голос
/ 09 июня 2011

Я предполагаю, что ваш [1,2,3] является массивом. В таком случае сделайте это так.

var d:Array = [1,2,3,4,5];
var v:int;
var n:Number =0;

for each(v in d )
{
    n+=v;
    trace(n);   
}

Это выводит: 1 3 6 10 15

Удачи! :)

0 голосов
/ 09 июня 2011

Это то, что вы имеете в виду?

var n:Number = 0;
var ar:Array = [1,2,3];

for each(var i:Number in ar)
{
    n += i;
}

trace(n);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...