![]() |
|
||||||||||
|
|||||
|
Guest
Сообщений: n/a
|
как удалить элемент из массива?
если не известен его порядковый номер, а известно только значение этого этлемента. т.е. есть массив ["a", "b", "c"] надо удалить "c" я тут сделал проц-ру простым перебором, но если массив будет большой, то на её выполнение потребуется какое то время, что неприемлимо совсем, потому что я её буду часто использовать как можно сделать проще?? |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Array.splice(elementIndex, 1);
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Guest
Сообщений: n/a
|
Цитата:
элемента, который нужно удалить.... известен лишь сам этот элемент...... так что? никак кроме как так ? (в первом сообщении, где CODE дан, удаление производится из массива _root.ej ... это если кто не понял) Последний раз редактировалось andr_sky; 28.06.2002 в 22:32. |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
а хэш (ассоциативный массив другими словами) вместо простого массива сделать нельзя ?
тогда бы и вопрос сам собой отпал... |
|
|||||
|
Guest
Сообщений: n/a
|
не будет ли так любезен Nox Noctis объяснить
что ж это за хрень такая "хэш" ..... |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
во флэше хеш - это самая банальная вещь
ты сам им постоянно пользуешься когда проги на АС пишешь ![]() когда ты делаешь обращение вроде: this["something"] - это как раз и есть обращение к ассоциативному массиву, где имена всех методов и пропертей являются ключами. так я к чему все это - ты можешь переписать массив задом наперед ? есть у тебя, скажем, массив вроде: a = [10,20,30,40]; а ты его перепишешь как a = []; a["i10"] = ...; // в качестве значения такого элемента поставишь то, что тебе нужно... // а если не нужно можно просто true поставить например a["i20"] = ...; a["i30"] = ...; a["i40"] = ...; вообще, это не будет отличаться от работы с объектами хочешь удалить элемент со значением N - пишешь delete a["i"+N]; ...это например недостаток очевиден - чтобы узнать, каким элемент является по порядку тебе придется гнать цикл. короче тебе надо понять что тебе больше нужно: моментально находить элемент по его значению, или по его порядковому номеру в массиве. Последний раз редактировалось Nox Noctis; 29.06.2002 в 20:56. |
|
|||||
|
Guest
Сообщений: n/a
|
однако эта штука "хэш" очень полезная.
только вот почему она так называется.... но всё равно мне хэш этот не поможет, элементы массива совершенно разные типа "е1", "е2", "е_1", "е3", "mе_1" и тп.... а мне их ещё надо всех перебирать по прядку для проверки всяких там штук.... так что надо обычный Array использовать.... |
|
|||||
|
А эти твои элементы не имена мувов часом? Та мож в масиве не имена хранить а сами объекты(тобиш ссылки)? Короче не мудри - если хочешь чтоб помогли - объясняй всю задачу. Но без перебора я думаю врядли обойтись. Не хочешь лишней работы - поставь при выполнении условия ретурн
__________________
Без труда не выловишь и fish-ку из пруда! |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
а вообще можно сделать гибрид массива и гусеничного трактора
![]() ...правда как этого добиться без дублирования структуры, мне пока не понятно ![]() но вообще, если элементов не очень много, то можно сделать и хэш и обычный массив... только тогда нужно написать функции, которые их синхронизируют... |
![]() |
Часовой пояс GMT +4, время: 15:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|