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(); }