![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 6
|
Привет!
В цикле использую метод Array.splice(), но он неправильно работает или я неправильно делаю a=[[1,1,1],[2,2,2],[3,3,3]]
b=[]
for(i=0;i<3;i++){
b[0]=i
b[1]=i
b[2]=i
trace(b)
a.splice(i,0,b)
trace(a)
}
0,0,0 0,0,0,1,1,1,2,2,2,3,3,3 1,1,1 1,1,1,1,1,1,1,1,1,2,2,2,3,3,3 2,2,2 2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,3,3,3 а вот что по моей логике должно быть 0,0,0 0,0,0,1,1,1,2,2,2,3,3,3 1,1,1 0,0,0,1,1,1,1,1,1,2,2,2,3,3,3 2,2,2 0,0,0,1,1,1,2,2,2,1,1,1,2,2,2,3,3,3 Подскажите что не так. |
|
|||||
|
Регистрация: May 2006
Адрес: Нск
Сообщений: 91
|
вот здесь:
вы добавляете в массив а ссылку на массив b, но не его содержимое, а в следующей итерации вы меняете содержимое b, оно меняется и в а, потому что там хранится ссылка на b. надеюсь примерно понятно объяснил ![]() спасет вам например так: но в памяти при этом у вас будет храниться 3 разных объекта b. я бы по другому как-нибудь это сделал. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 23
|
А как добавить в массив a содержимое массива b?
|
|
|||||
|
|
|
|||||
|
Регистрация: Apr 2008
Сообщений: 23
|
Масло масленное? Splice в упор не желает работать с b как с массивом.
ps: Хочу уточнить что я использую ас3. Добавлено через 36 минут Вообще что-то странное творится. trace( b.length ); trace( a.length ); var c : Array = new Array(); c = a.splice( 4 ); trace( c.length ); a.concat( b ); a.concat( c ); trace( a.length ); 4 31 27 4 Добавлено через 1 час 3 минуты В результате результат был достигнут: Последний раз редактировалось edge1; 02.03.2009 в 13:16. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|