Просмотр полной версии : Двухмерный массив
Olowokandi
11.07.2007, 17:34
Извените за очень ламерский вопрос, но по хелпу флеша я понял, что чтобы задать двухмерный массив нужно описать все элементы, это так?
Хотелось бы как в РНР [1..20] в таком духе, подскажите если это реально то как задать 2Д массив 10 на 20?
var arr:Array = [[],[],[],[],[],[]]
function createArray2d (size:Number):Array {
var array:Array = new Array ();
for (var i:Number = 0; i < size; i++) {
array.push ([]);
}
return array;
}
var array:Array = createArray2d (10);
trace (array)Задавать вторую размерность не надо, флеш динамически меняет размер массива.
Olowokandi
11.07.2007, 18:41
OK, Спасибо, и еще вопрос а как его обнулить весь? только циклом, функции не существует?
Перед забивкой данных, сделать его пустую копию, а потом обратно присвоить. Только не просто присвоить, иначе это будет ссылка на массив, а с помощью concat
//// делаем пустую копию
copy = source.concat ();
...
//// тут заполняем массив source
...
//// обнуляем
source = copy.concat ();
Olowokandi
11.07.2007, 19:07
Еще раз спасибо
CrazyFlasher
12.07.2007, 01:55
кстати, если делать копию массива таким способом:
arr = [1,2,3];
var tempStr:String = arr.toString();
var newArr:Array = new Array();
newArr = tempStr.split(",");
Эта операция намного медленнее?
2 iNils: что-то ничерта не понял в коде (3 пост)... как нам обращаться к конкретному элементу массива? например к (1,9) ? попробовал - ничего не получается...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.