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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Jul 2001
Адрес: Омск
Сообщений: 11
Отправить сообщение для Rmike с помощью ICQ
По умолчанию Как массив проверить на наличие элемента?

Надо проверить массив, есть ли там определенное число. Кто подскажет? Где-то мне попадался способ без цикличной проверки.

Старый 16.12.2001, 18:05
ish вне форума Посмотреть профиль Отправить личное сообщение для ish Посетить домашнюю страницу ish Найти все сообщения от ish
  № 2  
ish

Регистрация: Sep 2000
Адрес: :)
Сообщений: 2,374
Отправить сообщение для ish с помощью ICQ
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.
Старый 16.12.2001, 19:21
Egoritch вне форума Посмотреть профиль Отправить личное сообщение для Egoritch Посетить домашнюю страницу Egoritch Найти все сообщения от Egoritch
  № 3  
Egoritch
"Ниразу не флэшер"
 
Аватар для Egoritch

Регистрация: Nov 2001
Адрес: +38-067-...
Сообщений: 1,434
Отправить сообщение для Egoritch с помощью ICQ
По умолчанию угу, было такое...

Цитата:
Где-то мне попадался способ без цикличной проверки...
Subj. В SQLe
а если найдёшь такое на флэше, ц, джабе - плз, зымыль и мне
__________________
стучитесь в асю за дополнительной помощью....
ЗЫ: ПОИСК действительно рулит.

Старый 16.12.2001, 19:31
Barmaglot вне форума Посмотреть профиль Отправить личное сообщение для Barmaglot Найти все сообщения от Barmaglot
  № 4  
Barmaglot
 
Аватар для Barmaglot

Регистрация: Aug 2001
Адрес: Moscow
Сообщений: 213
Отправить сообщение для Barmaglot с помощью ICQ
Без проверки всех элементов подряд можно обойтись ТОЛЬКО если массив упорядочен.

Старый 16.12.2001, 20:20
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 5  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Самый лучший способ это метод indexOf, который нужно создать.
Лучше пока ничего не придумано. Но он опять же использует цикл.

indexOf нужно делать самому.


Код:
Array.prototype.indexOf = function(searched)
{
	for(var indexOf_i=0;indexOf_i<this.length;indexOf_i++)
	{
		if(searched==this[indexOf_i])
		{
			return indexOf_i;
		}
	}
	return -1;
}

//::: EXAMPLE :::

arr = [1,2,3,4,5,6,7,8,9,10];

if(arr.indexOf(3) != -1)
{
	trace ("YES!!!")
}

Старый 16.12.2001, 21:18
Barmaglot вне форума Посмотреть профиль Отправить личное сообщение для Barmaglot Найти все сообщения от Barmaglot
  № 6  
Barmaglot
 
Аватар для Barmaglot

Регистрация: Aug 2001
Адрес: Moscow
Сообщений: 213
Отправить сообщение для Barmaglot с помощью ICQ
Перебором искать хорошо, если у вас массив длиной 10 - 50; а если он большой и искать нужно часто, то лучше его сначала отсортировать, а затем уже искать в нем с помощью бинарного поиска или еще как кому что нравится.
Алгоритмы и сортировки и поиска довольно простые, любой сможет реализовать. К тому же есть всякие доступные библиотеки, оттуда можно их взять и переделать для флэша.
Че больше размер массива, тем сильнее разница в скорости.
Для массива чисел длиной 1000 разница будет примерно раз в 50-200;

Старый 16.12.2001, 21:44
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 7  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
вот подумал... и мысля посетила... (страно это )

а не быстрее ли получится, если массив .toString()
а потом строку .indexOf( searchString, fromIndex );

сам не пробовал, но может в этом есть смысел?

Старый 16.12.2001, 22:00
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 8  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
попробовал...
смысла нет

Старый 17.12.2001, 01:39
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 9  
john
МЕГАФЛЭШЕР

Регистрация: 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;
}
при необходимости узнать наличия значения

делаем так

Код:
if(source_arr_object[значение] == true)
{
	trace ("YES!")
}
плохо тем что значения могут быть толко номера и строки,
второе, что при изменении массива, нужно будет обновлять объект значений.

Но когда массив статичный и значения строки и цифры, то имеет смысл....

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

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

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


 


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


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