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

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

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

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
По умолчанию Поиск элемента в массиве

Доброго времени суток! Проблема такая: добавляю элемент в массив, но добавляется он в массив только в том случае если он не был добавлен раньше (это для того чтобы исключить два одинаковых элемента в массиве). Подскажите самый быстрый способ проверки - имеется ли такой элемент в массиве.


Я сделал цикл
Код AS3:
function CheckObject():Boolean{
    for(var i:int=0;i<=array.length-1;i++){
          if(array[i]==object){
          return false
          }
    }
    return true
}
есть ли решение быстрее этого? Просто если массив большой это будет грузить систему

Старый 05.08.2009, 14:27
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 2  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
я бы воспользовался методом Array.indexOf(element):int

Старый 05.08.2009, 14:32
Maestro13 вне форума Посмотреть профиль Отправить личное сообщение для Maestro13 Найти все сообщения от Maestro13
  № 3  
Ответить с цитированием
Maestro13

Регистрация: May 2009
Адрес: Санкт-Петербург
Сообщений: 79
А, спасибо! Я об этом методе не знал

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Также вместо массива можно воспользоваться Dictionary или Object, тогда вообще не прийдется делать поиск.

Старый 06.08.2009, 21:10
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 5  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Цитата:
Сообщение от alatar Посмотреть сообщение
Также вместо массива можно воспользоваться Dictionary или Object, тогда вообще не прийдется делать поиск.
Придётся, но не вам лично.

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
чтоб не тратить время, есть адобовский класс для этого ArrayUtil. Во флекс sdk он так же есть

Старый 07.04.2011, 17:31
borisphen вне форума Посмотреть профиль Отправить личное сообщение для borisphen Найти все сообщения от borisphen
  № 7  
Ответить с цитированием
borisphen

Регистрация: Mar 2011
Сообщений: 14
Чтобы не плодить темы, спрошу здесь... А вот если все тоже самое, но нужно получить индекс объекта в массиве по значению его свойства:
Код AS3:
function CheckObject():Boolean{
    for(var i:int=0;i<=array.length-1;i++){
          if(array[i].someProperty==object.someProperty){
          return false
          }
    }
    return true
}
Подскажите пожалуйста более изящный способ.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ответ во втором посте этой темы.
__________________
тут я

Старый 07.04.2011, 20:01
borisphen вне форума Посмотреть профиль Отправить личное сообщение для borisphen Найти все сообщения от borisphen
  № 9  
Ответить с цитированием
borisphen

Регистрация: Mar 2011
Сообщений: 14
Спасибо!
Туплю нипадеццки )))

Добавлено через 30 минут
Подскажите ответ еще на один глупый вопрос, все то же самое, но справа в сравнении какое то конкретное значение:
Код AS3:
function CheckObjectProp():Boolean{
    for(var i:int=0;i<=array.length-1;i++){
          if(array[i].someProperty==value){
          return true
          }
    }
    return false
}


Последний раз редактировалось borisphen; 07.04.2011 в 20:44.
Старый 21.06.2011, 09:38
chuvak2008f вне форума Посмотреть профиль Отправить личное сообщение для chuvak2008f Найти все сообщения от chuvak2008f
  № 10  
Ответить с цитированием
chuvak2008f

Регистрация: May 2011
Адрес: http://jai.ng7.ru http://kuponid.ru
Сообщений: 49
Можно ли как то осуществить поиск в двумерном массиве стандартными средствами или надо свою функцию создавать?
Код AS3:
var arr:Array = [[1,2], [3,4], [5,6], [7,8]];
и если стандартными то что будет быстрее
обычный for или forEach

всё всем спасибо я сам ответил на вопрос DD
* Array *
for each: 9
for: 26
while: 24
for in: 149

* Vector *
for each: 9
for: 7
while: 11
for in: 199


Последний раз редактировалось chuvak2008f; 21.06.2011 в 10:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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