Массив сплайсов в массиве
Как я могу соединить массив в другом массиве?
Я пытаюсь создать игру для детей в моем классе. Что-то вроде создателя вопроса истории пустяков. Как соединить MasterArray так, чтобы я избавился от подмассивов (Hard-England и Medium-England) внутри allEnglandArray. Потому что "MasterArray.splice()", кажется, влияет - объединяя только массив allEngland или массив allFrance. Но мне нужно избавиться от этих подмассивов...
Мой код:
var Easy-England:Array = ["item1","item2","item3","item4","item5"];
var Medium-England:Array = ["item6","item7","item8"];
var Hard-England:Array = ["item9","item10"];
var allEngland:Array = [Easy-England,Medium-England,Hard-England];
var Easy-France:Array = ["item11","item12","item13","item14","item15"];
var Medium-France:Array = ["item16","item17","item18"];
var Hard-France:Array = ["item19","item20"];
var allFrance:Array = [Easy-France,Medium-France,Hard-France];
// the list of countries goes on and on and on... (Italy, Hungary, etc.)
var allStuff:Array = [allEngland, allFrance, etc.];
var MasterArray:Array;
// FUNCTIONS
// clear MasterArray - first I clear out completely the MasterArray
function clearMasterArray():void
{
MasterArray.splice(0);
}
// update MasterArray - than I fill the MasterArray with data according to checkBoxes
function updateMasterArray():void
{
for (var i:int = 0; i<checkBoxBlock.myCheckBoxes.length; i++)
{
if (checkBoxBlock.myCheckBoxes[i].selected)
{
MasterArray.push(allStuff[i]);
}
}
}
// splice MasterArray - last thing I do is splice the items according to student's proficiency level, referred to as "studentPL".
function spliceMasterArray():void
{
if (studentPL == 1)
{
for (var i:int = 0; i<allStuff.length; i++)
{
allStuff[i].splice(5,5);
}
}
if (studentPL == 2)
{
for (var i:int = 0; i<allStuff.length; i++)
{
allStuff[i].splice(8,2);
}
}
if (studentPL == 3)
{
for (var i:int = 0; i<allStuff.length; i++)
{
trace("no need to splice");
}
}
}
И после этого я вызываю эти функции в другой функции в этом порядке...
function creatorFunction():void
{
clearMasterArray();
updateMasterArray();
spliceMasterArray();
}
1 ответ
Решение
Вместо:
var allEngland:Array = [Easy-England,Medium-England,Hard-England];
попробуй это:
var allEngland:Array = Easy-England.concat(Medium-England, Hard-England);
Таким образом, у вас будет "плоский" массив (без подмассивов), так что с ним будет легче иметь дело.