Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2010, 15:32
oam333 вне форума Посмотреть профиль Отправить личное сообщение для oam333 Найти все сообщения от oam333
  № 1  
Ответить с цитированием
oam333

Регистрация: Jun 2009
Адрес: Иваново
Сообщений: 26
По умолчанию Как удалить элемент массива?

Пользовался здесь поиском, нашел splice.
Использую так:
Код AS3:
tile_list.splice(min,1)
где min - нужный расчетный элемент
Но после такого удаления место этого элемента остается (а не удаляется) и ему присваивается undefined.
В связи с этим у меня дебаггер выдает, что часть значений массива - это цифры, а часть значений - "undefined" и длина массива не изменяется.
Как удалить элемент массива, чтобы уменьшилась его длина, а не заменялось на "undefined"? Функция pop не подходит, т.к. нужно удалять элементы в разных местах массива. Создание нового массива с отсутствующими "undefined" в цикле возможно, но нежелательно (этот способ я знаю).

Старый 02.04.2010, 15:35
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var a:Array = [ 1, 2, 3, 100500 ];
a.splice(2, 1);
trace(a) // 1,2,100500
Должно всё удаляться.

Старый 02.04.2010, 16:00
oam333 вне форума Посмотреть профиль Отправить личное сообщение для oam333 Найти все сообщения от oam333
  № 3  
Ответить с цитированием
oam333

Регистрация: Jun 2009
Адрес: Иваново
Сообщений: 26
Почему у меня тогда не хочет удаляться? Ваш пример работает.
Создается все это дело у меня так:
Код AS1/AS2:
var tile_list: Array = [];
//каждый элемент массива у меня Object
tile_list[i_tile] = new Object();
tile_list[i_tile].t_tx = tx;
 
< ... >
 
//delete tile_list[min];
tile_list.splice(min,1);
trace(tile_list):
Код AS1/AS2:
[object Object],[object Object],[object Object],[object Object],[object Object],undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,[object Object],[object Object],[object Object],[object Object]
.
.

Старый 02.04.2010, 16:36
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ищите ошибку где-то в другом месте.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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