Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Deleting array elements 
:(
    Опции темы
Cheba
Дата 22.2.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Это не то, чтобы вопрос, просто не понятно как-то... Вот подумал, что, может, кто-то мне расскажет от чего да почему...

Для начала кусочек доки ().

Цитата(Core JavaScript 1.5 Reference)
When you delete an array element, the array length is not affected. For example, if you delete a[3], a[4] is still a[4] and a[3] is undefined.

When the delete operator removes an array element, that element is no longer in the array. In the following example, trees[3] is removed with delete.

Код
trees=new Array("redwood","bay","cedar","oak","maple")
delete trees[3]
if (3 in trees) {
   // this does not get executed
}


If you want an array element to exist but have an undefined value, use the undefined keyword instead of the delete operator. In the following example, trees[3] is assigned the value undefined, but the array element still exists:

Код
trees=new Array("redwood","bay","cedar","oak","maple")
trees[3]=undefined
if (3 in trees) {
   // this gets executed
}


Совственно все так и происходит - при удалении элемента массива его там больше нет, но длина массива не изменяется. Почему?

Вот у меня такая штука происходит... Сначала делается a.push(Object). Потом, когда этот объект больше не нужен, он удаляется следующим образом:
index = a.indexOf(Object);
delete a[index];

Но чтобы сбросить длину массива приходится прибегать к злостного вида приемам. Вообще-то это не критично, но кто его знает... У меня этот скрипт может работать очень долго и кто знает что там может случиться...

Вот... Пожаловался... smile
PM MAIL ICQ   Вверх
Sardar
Дата 23.2.2006, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Зря конечно так наворотили, но вообщем есть две ситуации, когда значение физически присутствует в массиве, пусть и undefined, и когда значения наоборот физически нет, тогда при выборке берёться undefined как значение. Что бы удалить элемент из массива и при этом "сдвинуть" все другие, пользуй splice метод.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.