Показать сообщение отдельно
Старый 20.09.2010, 12:53
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 1  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
По умолчанию Как объединить многомерные массивы?

Код AS3:
function getArrayStr(aArray: Array): String {
	var RetVal: String = "(";
	if (aArray.length > 1) {
		for (var i in aArray) {
			RetVal += getArrayStr(new Array(aArray[i]));
			if (i < aArray.length - 1) {
				RetVal += ",";
			}
		}
	}
	else {
		RetVal += aArray.toString();
	}
	RetVal += ")";
	return RetVal;			
}
 
function clone(source:Object):* 
{ 
    var myBA:ByteArray = new ByteArray(); 
    myBA.writeObject(source); 
    myBA.position = 0; 
    return(myBA.readObject()); 
}
 
var a: Array = [[1,2],3];
var b: Array = [4];
var c: Array = [];
 
trace("a:", getArrayStr(a), "length:", a.length);
trace("b:", getArrayStr(b), "length:", b.length);
 
c = new Array(clone(a), clone(b));
 
trace("c:", getArrayStr(c), "length:", c.length);
Вопрос: как получить массив "c", в точности состоящий из двухмерного массива "а" и добавленного "b", т.е. "(1,2),3,4", а получается почему то "(1,2,3),4".

Добавлено через 6 минут
Вариант:
Код AS3:
c = new Array(a.concat(),b.concat());
тоже не прокатывает...