Actionscript 3: динамически создавать объекты массива из массивов.

Я хочу, чтобы моя функция возвращала динамически сгенерированный массив, который я затем могу присвоить значению параметра объекта, например:

var varObj:Object = {
    level:level,
    scores:getScoreArray()
}

function getScoreArray():Object {
    return[
        for each(var i:score in myScoreArray){
        //append i to the return-array
        }
    ];
}

Получившийся varObj должен выглядеть примерно так:

{level:12,scores:[150,240,550]}

заранее спасибо Jery

РЕДАКТИРОВАТЬ: Так вот, что ответ Vesper получил меня:

private function getTrialsArray():Array {
    var array:Array = new Array();

    for each(var model:TrialTrackingModel in trialTrackingArray) {
        array.push({
            level:model.level,
            stimulustime:model.stimmulusTime,
            inputMethod:model.inputMethod,
            reactionTimes:model.reactionTimes.slice(),
            answers:model.answers.slice()
        });
    }

    return array;
}

1 ответ

Решение

Вы в основном создаете новый массив в этой функции, заполняете его, а затем возвращаете готовый массив. Как это:

function getScoreArray():Array {
    var a:Array=[];
    for each(var i in myScoreArray){
    a.push[i];
    }
    return a;
}

На самом деле, это может быть сделано с большей легкостью, используя Array:slice() функция.

function getScoreArray():Array { return myScoreArray.slice(); }
Другие вопросы по тегам