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

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

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию сравнение по нескольким условиям

Необходимо произвести сравнение по нескольким условиям. Проблема в том, что количество подобных условий не известно. К примеру 2 массива (если проще, то пусть один из них с постоянным количеством элементов, а второй - с динамически меняющимся) и нужно сравнить все элементы из одного массива со всеми элементами из другого.
Как лучше поступить в данной ситуации?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Jul 2009
Сообщений: 58
делаете два вложенных цикла и сравниваете все элементы одного массива со всеми элементами другого массива.длинна массивов узнаётся
Код AS3:
array.length()

Старый 06.11.2009, 12:35
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 3  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
psylover, это не подходит, т.к. при этом сравнение происходит при каждой итерации, а мне нужно одновременно
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 06.11.2009, 12:51
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 4  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
если я правильно понял:

пример.
есть массив №1 [A, B, C, D, E, F]
есть массив №2 [G, H, I, J, K, L, M, N]

и вам надо каждую "итерацию" сравнивать все элементы №1 со всеми элементами №2 ?

никакого другого разумного способа, кроме как предложенного "psylover" я думаю нет

Старый 06.11.2009, 13:00
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 5  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
Цитата:
Сообщение от TanaTiX Посмотреть сообщение
psylover, это не подходит, т.к. при этом сравнение происходит при каждой итерации, а мне нужно одновременно
конкретизируйте задачу. из ваших требований ничего не понятно.

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

Регистрация: Jul 2009
Сообщений: 58
Цитата:
Сообщение от TanaTiX Посмотреть сообщение
psylover, это не подходит, т.к. при этом сравнение происходит при каждой итерации, а мне нужно одновременно
вы толи не можите сформулировать что вам именно нужно толи еще что то , почему не подходит метод когда вы берете один элемент массива А и сравниваете его со всеми элементами массива В ? и сделайте там какой нибудь булевый переключатель котрый отвечает за выполнение всех условий.

Старый 06.11.2009, 13:23
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 7  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Немного упрощу.
Код AS3:
var a:uint=3;
var b:Array=[1,5,3,8,2];//массив, количество и значение элементов которого не известно
if(a==b[0] || a==b[1] || a==b[2] || a==b[3] || a==b[4]....){//сравнение, может быть не только "или" (||), но и любым другим
...
}
Надеюсь смог объяснить...
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 06.11.2009, 14:02
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 8  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
Код AS3:
function compareOr(item:uint, arr:Array):Boolean {
	for (var i:Number = 0; i < arr.length; i++) {
		if (item == arr[i]) {
			return true;
		}
	}
	return false;
}
 
 
function compareOrSimple(item:uint, arr:Array):Boolean {
	return arr.indexOf(item) != -1;
}
 
function compareAnd(item:uint, arr:Array):Boolean {
	for (var i:Number = 0; i < arr.length; i++) {
		if (item != arr[i]) {
			return false;
		}
	}
	return true;
}
 
var a:uint=3;
var b:Array = [1, 5, 3, 8, 2];
 
if (compareOr(a, b)) {
	...
}
Добавлено через 12 минут
Еще пример для более широкой задачи
Код AS3:
function compareOr(item:uint, arr:Array, cmpFunction:Function):Boolean {
	for (var i:Number = 0; i < arr.length; i++) {
		if (cmpFunction(item, arr[i])) {
			return true;
		}
	}
	return false;
}
function compareAnd(item:uint, arr:Array, cmpFunction:Function):Boolean {
	for (var i:Number = 0; i < arr.length; i++) {
		if (!cmpFunction(item, arr[i])) {
			return false;
		}
	}
	return true;
}
 
function cmpEQ(item1:uint, item2:uint):Boolean {
	return item1 == item12;
}
 
function cmpGT(item1:uint, item2:uint):Boolean {
	return item1 > item2;
}
 
function cmpGTE(item1:uint, item2:uint):Boolean {
	return item1 >= item2;
}
 
var a:uint=3;
var b:Array = [1, 5, 3, 8, 2];
 
if (compareOr(a, b, cmpEQ)) {
	...
}


Последний раз редактировалось bicubic_bublic; 06.11.2009 в 14:36.
Старый 06.11.2009, 14:22
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 9  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
bicubic_bublic, спасибище, буду разбираться.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

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

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


 


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


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