![]() |
Удаление элемента массива по имени.
Доброго дня, столкнулся с небольшой задачкой и никак не могу ее решить.
У меня массив info_list, который содержит ссылки на клипы. Каждый клип имеет уникальное имя. В определенные моменты я удаляю определенные клипы (с этим проблем нет через перебор for), но вот как мне найти нужную ссылку на клип в массиве, что бы удалить ее? Ведь индекс удаляемого клипа не известен, только его имя, соответственно ни splice, ни shift, ни pop не работают. А так массив постоянно заполняется, когда я создаю новые клипы и фпс заметно падает. Пробовал через перебор For и сравнение имени у ссылки на клип с передаваемым, а затем info_list.splice(0, 1, info_list[temp]) - не работает, удаляется только ссылка на 1й клип, а я могу удалять сразу несколько, пробовал просто info_list.splice(info_list[temp], 1) - так вообще абы какие клипы удаляются. Пожалуйста, подскажите кто-нибудь. |
в удаляемый клип, при его создании, записывайте ссылку на элемент массива.
мой_клип.ссылка = номер_элемента_массива Перед удалением клипа - удаляйте элемент по ссылке. К примеру. |
Благодарю за отклик, можно было сделать так, но нашел другой выход) Весь вечер вчера голову ломал, сразу не дошло: перебор делать через цикл for (i=0.. и далее сравнивать имя искомого индекса, а я перебирал только по самим ссылка в массиве. Задача решена, но всеравно спасибо, dark.
|
ну в общем да, для индексированных массивов счетный цикл самое то :)
for in имеет смысл применять, если индекс массива - литерал. Типа имя_массива["Возраст"] = 666 :) |
Вы имеете ввиду, если в массиве хранятся не ссылки на инстансы, а просто строковые значения?
|
Нет, если индекс элемента массива выглядит не так:
arr[0] arr[1] arr[2] А так: arr["Vasia"] arr["Katia"] arr["iNills"] |
но это всеравно могут быть ссылки на инстансы? если да, то как добавлять тогда таким образом индексы, push("Vasya") ?
|
в самом элементе хранить можно все что угодно.
а push.... я обычно добавляю так: array[array.length] = очередные_данные_какие-то_любые :) Добавляется в конец и нормально увеличивается размер. В вашем случае ничего не надо добавлять, по сути. arr["Vasia"] = 100500 - это само по себе создаст в массиве элемент с таким индексом :) |
аа, понял.. это удобно для сортировки потом, но это, получается, подходит только для заполнения вручную? скажем, если эл-тов очень много (ну, скажем, уже больше десятка), то процесс не автоматизировать?
|
Смотря откуда вы берете данные.
Ну и литерал собссно тоже можно генерить как угодно. Например из индексов символов собирать строки. |
| Часовой пояс GMT +4, время: 00:25. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.