![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Надо проверить массив, есть ли там определенное число. Кто подскажет? Где-то мне попадался способ без цикличной проверки.
|
|
|||||
|
a=[1,2,3,4,5,6,7,8,9,0];
x=8; for(i=0;i<a.length;i++) { if(a[i]==x) { trace("!!!"); break; } } Последний раз редактировалось ish; 16.12.2001 в 18:09. |
|
|||||
|
"Ниразу не флэшер"
|
Цитата:
![]() а если найдёшь такое на флэше, ц, джабе - плз, зымыль и мне ![]()
__________________
стучитесь в асю за дополнительной помощью.... ЗЫ: ПОИСК действительно рулит. |
|
|||||
|
Без проверки всех элементов подряд можно обойтись ТОЛЬКО если массив упорядочен.
|
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
Самый лучший способ это метод indexOf, который нужно создать.
Лучше пока ничего не придумано. Но он опять же использует цикл. indexOf нужно делать самому. |
|
|||||
|
Перебором искать хорошо, если у вас массив длиной 10 - 50; а если он большой и искать нужно часто, то лучше его сначала отсортировать, а затем уже искать в нем с помощью бинарного поиска или еще как кому что нравится.
Алгоритмы и сортировки и поиска довольно простые, любой сможет реализовать. К тому же есть всякие доступные библиотеки, оттуда можно их взять и переделать для флэша. Че больше размер массива, тем сильнее разница в скорости. Для массива чисел длиной 1000 разница будет примерно раз в 50-200; |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
вот подумал... и мысля посетила... (страно это
)а не быстрее ли получится, если массив .toString() а потом строку .indexOf( searchString, fromIndex ); сам не пробовал, но может в этом есть смысел? ![]() |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
попробовал...
смысла нет ![]() |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
если содержание массива статично и нужно часто обращаться к нему на предмет проверки данных могу предложить такое решение, сам иногда пользуюсь.
сначала создадим объект которые содержит поля с буливыемыми значениями. arr = [0,1,2,3,4,5,6,7,8,0];
source_arr_object = {};
for (var i=0;i<arr.length;i++)
{
source_arr_object[arr[i]] = true;
}
делаем так плохо тем что значения могут быть толко номера и строки, второе, что при изменении массива, нужно будет обновлять объект значений. Но когда массив статичный и значения строки и цифры, то имеет смысл.... |
![]() |
Часовой пояс GMT +4, время: 06:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|