|
|
|||||
Регистрация: Nov 2008
Сообщений: 6
|
Метод Array.splice()
Привет!
В цикле использую метод 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, время: 12:21. |
|
« Предыдущая тема | Следующая тема » |
|
|