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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2010, 17:33
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 1  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Question Вопрос по [in] и [Array]

Добрый день,

Пробую вот такую вот запись:
Код AS3:
var myArr:Array = [10,20,50];
var myNum:int = 10;
 
if(myNum in myArr)trace(true)
else trace(false);
Данный пример вернет результат false, потому что данная запись отрабатывает как проверка существования индекса массива под номером myNum. Это не то что мне нужно, скорее - наоборот...!!

...подскажите пожалуйста, существует ли возможность булевой проверки существования значения в массиве без всевозможных циклических переборов значений массива. В данном случае меня совершенно не волнует позиция (индекс) значения в массиве, а только - его существование. Если не ошибаюсь, то в других языках (Delphi) данная запись сверялась бы не с номерами индексов массива, а именно с его значениями. Хотелось бы иметь на вооружение короткий вариант проверки существования значения в массиве.

Старый 25.11.2010, 17:37
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
indexOf? Но он тоже основан на циклах, только не мы их пишем.
__________________
тут я

Старый 25.11.2010, 17:53
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Array позволяет делать такой бардак:

Код AS3:
var myArr:Array = [];
myArr[10] = true;
myArr[20] = true;
myArr[50] = true;
 
var myNum:int = 10;
 
if (myArr[myNum]) trace(true);
else trace(false);
Можно организовать подобным образом основной массив.
Можно создать вспомогательный массив с такой структурой, если основной все же должен иметь изначально описанную структуру (нормальную т.е.)
__________________
Поймай яблоко 2!

Старый 25.11.2010, 18:17
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Можно создать вспомогательный массив с такой структурой, если основной все же должен иметь изначально описанную структуру (нормальную т.е.)
А смысл в таком случае заводить массив? Object или Dictionary в таком случае справятся лучше.

Старый 25.11.2010, 18:31
ERrorMAKros вне форума Посмотреть профиль Отправить личное сообщение для ERrorMAKros Посетить домашнюю страницу ERrorMAKros Найти все сообщения от ERrorMAKros
  № 5  
Ответить с цитированием
ERrorMAKros
 
Аватар для ERrorMAKros

Регистрация: May 2008
Адрес: Земля.Украина.Одесса
Сообщений: 219
Отправить сообщение для ERrorMAKros с помощью ICQ Отправить сообщение для ERrorMAKros с помощью Skype™
Люди, индексы массива меня совсем не интересуют, меня интересует вхождение значения в любом элементе массива. Это можно сравнить к примеру с такой задачей, как:
есть ли буква "а" в слове "паровоз". Т.е. мне не важно в какой позиции слова она находится, главное узнать есть ли она там или нет за минимальное кол-во строк (желательно - одной строкой, что бы это можно было гибко применить в if условии).

2 КорДум: Благодарю, indexOf - то что нужно!!!!


Последний раз редактировалось ERrorMAKros; 25.11.2010 в 18:34.
Старый 25.11.2010, 18:34
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
in array выполняется циклом, вам он никак не поможет. Это аналог (var i=0; i < array.length; i++) только короче запись, и как уверют гуру, выполняется процентов на 30 быстрее (хотя разницу при коротких массивах заметить невозможно)
Код AS3:
for (var i in array) {
 
}
Цитата:
существует ли возможность булевой проверки существования значения в массиве без всевозможных циклических переборов значений массива.
элементарно:
Код AS3:
if (someArray.indexOf(someVar) > -1) {
       return true;
} else {
      return false;
}


Последний раз редактировалось goodguy; 25.11.2010 в 18:37.
Старый 25.11.2010, 18:37
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 7  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
а почему вы решили, что indexOf не перебирает значения?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 25.11.2010, 18:39
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
тогда уже одной строчкой
Код AS3:
return someArray.indexOf(someVar) > -1;

Старый 25.11.2010, 18:41
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 9  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
goodguy,
Код AS3:
return (someArray.indexOf(someVar) > -1)
- так короче )

Добавлено через 32 секунды
alatar )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 25.11.2010, 18:43
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
да, что-то не подумал
Но это если вообще возвращать значения. А можно ведь сразу в блоке if выполнять какой-то код

Цитата:
а почему вы решили, что indexOf не перебирает значения?
Это не имеет значения. Главное, что самому код перебора писать не нужно.

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

Теги
array

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

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


 


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


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