![]() |
удаление элемента из массива
как удалить элемент из массива?
если не известен его порядковый номер, а известно только значение этого этлемента. т.е. есть массив ["a", "b", "c"] надо удалить "c" я тут сделал проц-ру простым перебором, но если массив будет большой, то на её выполнение потребуется какое то время, что неприемлимо совсем, потому что я её буду часто использовать Код:
function dfa(d) { |
Array.splice(elementIndex, 1);
|
Цитата:
элемента, который нужно удалить.... известен лишь сам этот элемент...... так что? никак кроме как так ? (в первом сообщении, где CODE дан, удаление производится из массива _root.ej ... это если кто не понял) |
Код:
for (var i=Array.length-1; i>=0; i--) |
а хэш (ассоциативный массив другими словами) вместо простого массива сделать нельзя ?
тогда бы и вопрос сам собой отпал... |
не будет ли так любезен Nox Noctis объяснить
что ж это за хрень такая "хэш" ..... |
во флэше хеш - это самая банальная вещь :) ты сам им постоянно пользуешься когда проги на АС пишешь :)
когда ты делаешь обращение вроде: this["something"] - это как раз и есть обращение к ассоциативному массиву, где имена всех методов и пропертей являются ключами. так я к чему все это - ты можешь переписать массив задом наперед ? есть у тебя, скажем, массив вроде: a = [10,20,30,40]; а ты его перепишешь как a = []; a["i10"] = ...; // в качестве значения такого элемента поставишь то, что тебе нужно... // а если не нужно можно просто true поставить например :) a["i20"] = ...; a["i30"] = ...; a["i40"] = ...; вообще, это не будет отличаться от работы с объектами ;) хочешь удалить элемент со значением N - пишешь delete a["i"+N]; ...это например недостаток очевиден - чтобы узнать, каким элемент является по порядку тебе придется гнать цикл. короче тебе надо понять что тебе больше нужно: моментально находить элемент по его значению, или по его порядковому номеру в массиве. |
однако эта штука "хэш" очень полезная.
только вот почему она так называется.... но всё равно мне хэш этот не поможет, элементы массива совершенно разные типа "е1", "е2", "е_1", "е3", "mе_1" и тп.... а мне их ещё надо всех перебирать по прядку для проверки всяких там штук.... так что надо обычный Array использовать.... |
А эти твои элементы не имена мувов часом? Та мож в масиве не имена хранить а сами объекты(тобиш ссылки)? Короче не мудри - если хочешь чтоб помогли - объясняй всю задачу. Но без перебора я думаю врядли обойтись. Не хочешь лишней работы - поставь при выполнении условия ретурн
|
а вообще можно сделать гибрид массива и гусеничного трактора :)
...правда как этого добиться без дублирования структуры, мне пока не понятно :) но вообще, если элементов не очень много, то можно сделать и хэш и обычный массив... только тогда нужно написать функции, которые их синхронизируют... |
| Часовой пояс GMT +4, время: 16:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.