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

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

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

Регистрация: Apr 2014
Сообщений: 215
По умолчанию работа с массивом

здравствуйте,во общем задача такая. есть пустой массив, и есть массив значений,ну например пару слов там, теперь как можно сделать так что бы пустой массив проверялся бы заполненным, например - в заполненном массиве есть слово ЗАДАЧА и пустой массив прежде чем в себя добавить это слово, смотрит есть ли в нем элемент ЗАДАЧА,если нет то добавляет, типа if ..... != ... тогда пустой массив.push,может кто то пример посоветовать реализации

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

Регистрация: Jul 2009
Сообщений: 149
Код AS3:
 
		private function addElement(element:String):void {
			if (_emptyArray.indexOf(element) != -1) {				
				trace(element + " уже есть в массиве");
			}else {
				_emptyArray.push(element);
				trace("В массив добавлен элемент " + element);
			}
		}

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

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от ObOs Посмотреть сообщение
Код AS3:
 
		private function addElement(element:String):void {
			if (_emptyArray.indexOf(element) != -1) {				
				trace(element + " уже есть в массиве");
			}else {
				_emptyArray.push(element);
				trace("В массив добавлен элемент " + element);
			}
		}
ага,а если как то методом перебора? то есть без нагромождений условий,например будет скажем 10 слов то будет таких - if (_emptyArray.indexOf(element) != -1) тоже 10. мне что то подсказывает можно как то массивПолный[i] != массивПустой[i] как бы один массив проверяет другой на наличие элементов, если в том нету то делать то что то.....

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Чем вам не понравилось решение товарища ObOs?
Метод indexOf, ищет элемент в массиве, и возвращает его позицию, или -1 если его нету. Почитайте справку.
И зачем 10 условий?

Старый 23.05.2014, 12:56
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 5  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
без if
Код AS3:
public function getDistinctArray(arr:Array):Array 
{			
	var ret:Array = [];
	var o:Object = { };
	var len:int = arr.length;
 
	for (var i:int = 0; i < len; i++)
		o[arr[i]] = arr[i];
 
	for (var p:* in o)
		ret.push(o[p]);
 
	return ret;
}
 
// usage
var inArray:Array = ["one", "two", "two", "two", "three"];
var outArray:Array = getDistinctArray(inArray);			
trace(inArray); // one,two,two,two,three
trace(outArray); // one,two,three

Старый 23.05.2014, 14:04
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 6  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Чем вам не понравилось решение товарища ObOs?
Метод indexOf, ищет элемент в массиве, и возвращает его позицию, или -1 если его нету. Почитайте справку.
И зачем 10 условий?
так если у меня этих слов много,а не определенное какое то,меня смущает вот это private function addElement(element:String):void
это что мне типа сделать вызов функции - addElement("ssdd","ffdfref","fdfd")

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
А вы пробовали использовать код что вам написали?

Старый 23.05.2014, 14:59
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 8  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
А вы пробовали использовать код что вам написали?
ну как бы, разве можно передать в функцию ту больше чем одно слово? в данном случае - нет

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

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

Если брать мой пример, то можно например так:

Код AS3:
 
var inArray:Array = ["one", "two", "two", "two", "three"];
var emptyArray:Array = [];
 
for(var i:int = 0; i< inArray.length; i++){
        addElement(inArray[i]);
}
 
trace(emptyArray); // one,two,three
 
function addElement(element:String):void {
	if (emptyArray.indexOf(element) != -1) {				
		trace(element + " уже есть в массиве");
	}else {
		emptyArray.push(element);
		trace("В массив добавлен элемент " + element);
	}
}

Старый 23.05.2014, 15:12
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 10  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от alexcon314 Посмотреть сообщение
без if
Код AS3:
public function getDistinctArray(arr:Array):Array 
{			
	var ret:Array = [];
	var o:Object = { };
	var len:int = arr.length;
 
	for (var i:int = 0; i < len; i++)
		o[arr[i]] = arr[i];
 
	for (var p:* in o)
		ret.push(o[p]);
 
	return ret;
}
 
// usage
var inArray:Array = ["one", "two", "two", "two", "three"];
var outArray:Array = getDistinctArray(inArray);			
trace(inArray); // one,two,two,two,three
trace(outArray); // one,two,three
я так понимаю этот код типа сортирует массив что ли,удаляет повтор слова?

Добавлено через 5 минут
Цитата:
Сообщение от ObOs Посмотреть сообщение
Вам показали уже два способа. А как их применять решать уже вам исходя из вашей конкретной задачи.

Если брать мой пример, то можно например так:

Код AS3:
 
var inArray:Array = ["one", "two", "two", "two", "three"];
var emptyArray:Array = [];
 
for(var i:int = 0; i< inArray.length; i++){
        addElement(inArray[i]);
}
 
trace(emptyArray); // one,two,three
 
function addElement(element:String):void {
	if (emptyArray.indexOf(element) != -1) {				
		trace(element + " уже есть в массиве");
	}else {
		emptyArray.push(element);
		trace("В массив добавлен элемент " + element);
	}
}
ой.....,реально чет не подумал что так можно

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

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

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


 


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


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