Интересен проблем с масив в AS2

madmax3_

Registered
Здравейте

Сблъсках се с интересен проблем (бъг ?) при работа с масив във AS2:


Код:

q = new Array(1,2,3);

trace ("Many - OK : " + q);

w = new Array(1);

trace ("Single - ??? : " + w);

r = new Array();
r[0] = 1;

trace ("Single again - OK : " + r);

Резултат:

Many - OK : 1,2,3
Single - ??? : undefined
Single again - OK : 1

Имайте го предвид при работа, че аз загубих доста време докато разбера какво става.
 
Не е бъг, не е и проблем.
Array има няколко конструктура.
Ако изброиш няколко елемента (> 1), създава масив с тези елементи.

Ако напишеш само едно число, създава масив, с толкова на брой заделени елементи, чиято стойност по подразбиране е undefined.

Тоест new Array(1) e масив с 1 елемент, който е undefined.
trace(new Array(4)) ще изведе 4 пъти undefined.
Пише го и в документацията :?:
 

Горе