Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Пропадает ссылка на объект из массива (http://www.flasher.ru/forum/showthread.php?t=96717)

chingachgoog 05.06.2007 17:33

Пропадает ссылка на объект из массива
 
Есть некий массив (arr1), содержащий в себе объекты (ссылки на объекты):

Код:

arr1=[]

for (i=0; i<4; i++) {
        arr1[i]={t:"проверка1"}
        }

Создается новый массив (копируется), в котором лежат те же ссылки на те же объекты:

Код:

arr2=[]
arr2=arr1.slice()

Пока все нормально, и трассировка второго массива работает корректно:

Код:

trace(arr2[0].t+" "+arr1[0].t) // проверка1 проверка1
arr2[0].t="end"
trace(arr2[0].t+" "+arr1[0].t) // end end

Далее собственно мой тупик :)

хотел создать третий массив на основе второго, извлекая из второго массива методом splice ссылки на объекты.
Но ничего не вышло :(

Код:

       
trace(arr2.splice(0, 1).t) // undefined


BigDan 05.06.2007 17:50

метод splice() возвращает массив, а не объект.
Код:

trace(arr2.splice(0, 1)[0].t)

chingachgoog 05.06.2007 18:02

Правильно.
Возращает массив, элементами которого должны (по идее) быть ссылки на объект. Но этого не происходит.
Элементами массива являются объекты (тоже трейситься легко). Но какие-то "левые". Без нужных свойств. Т.е. сама ссылка на объект пропадает.

NB!

Спасибо BigDan!
Не сразу осознал глубину мысли :)
Действительно:
arr2.splice(0, 1) - возращает массив, и чтобы обратиться к объектам массива необходимо указать номер ячейки массива: arr2.splice(0, 1)[0].t

Вот что значит чужой незамыленный глаз!


Часовой пояс GMT +4, время: 00:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.