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

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

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

Регистрация: Aug 2013
Сообщений: 89
Attention length для многомерного массива

Здравствуйте.Пишу в кадре.
Может быть кто-нибудь покажет, как использовать length для 2-мерного массива и для 3-мерного массива!?!
Вот мои массивы.
Код AS3:
//создать 3-мерный массив**********************************************
var F,M,i0,i00:int;
F=1;
M=1;
var Arr:Array=new Array(10);
 
for(i00=1;i00<=10;i00++){
			Arr[M]=new Array(10);
			M++;
                                    }
M=1;
F=1;
 
 
 
for(i00=1;i00<=10;i00++){
                                      for(i0=1;i0<=10;i0++){
                                      Arr[M][F]=new Array(10);
                                      F++					
		                                            }
		             M++
		             }
 
Arr[1][1][1]="2 1 1 1 2 2 3 3";
trace(Arr[1][1][1]);
trace("Arr.length: ", Arr.length);
//******************************************************************
 
//создать 2-мерный массив********************************************
var Arr2:Array = new Array(8)
for(i0=1;i0<=8;i0++){
	                     Arr2[i0]=new Array(8);
 
						    }
trace("Arr2.length: ",Arr2.length );
 
//******************************************************************

Старый 08.09.2013, 15:58
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Код AS3:
var arrayA:Array = [0,1,2,3,4,5,6];
var arrayB:Array = [arrayA];
trace(arrayA.length, arrayB.length, arrayB[0].length);//7,1,7

Старый 08.09.2013, 16:48
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 3  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
странная конструкция, врятли ее можно гденибуть использовать, больше похоже на домашнее задание по информатике ))
ну если надо найти все елементы то можно взять обычную рекурсию
Код AS3:
var a:Array = new Array([2,2,3],[1,1,1,1,1],[1,[2,2]]);
 
function rlength(a:Array) : int {
	var len:int = 0;
	for(var i:int=0;i<a.length;i++) len += typeof a[i] == 'object' ? rlength(a[i]) : 1;
	return len;	
}
 
 
trace(rlength(a));
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

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

Регистрация: Aug 2013
Сообщений: 89
Что за фокусы, chamele0n?Если массив заполнен:
Код AS3:
var Arr5:Array = new Array(2);
for(i0=1;i0<=2;i0++){
Arr5[i0]=new Array(2);}
 
Arr5[0]=1;
Arr5[1][0]=2;
Arr5[1][1]=3;
Arr5[1][2]=4;
Arr5[2][0]=5;
Arr5[2][1]=6;
Arr5[2][2]=7;
 
trace("Arr5: ", Arr5);
trace("rlegth(Arr5): ",rlength(Arr5));
-,то кол-во элементов: 7.

А если массив не заполнен:
Код AS3:
var Arr5:Array = new Array(2);
for(i0=1;i0<=2;i0++){
Arr5[i0]=new Array(2);}
/*
Arr5[0]=1;
Arr5[1][0]=2;
Arr5[1][1]=3;
Arr5[1][2]=4;
Arr5[2][0]=5;
Arr5[2][1]=6;
Arr5[2][2]=7;
*/			
trace("Arr5: ", Arr5);
trace("rlegth(Arr5): ",rlength(Arr5));
-,то кол-во элементов: 5 .
Но мы то знаем, что и кол-во элементов в обоих случаях 7!!!Почему так?

Старый 08.09.2013, 19:45
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 5  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А почему Вы считаете, что во втором случаи семь элементов?

Старый 08.09.2013, 20:05
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
А какая длина у двумерного массива
Код AS3:
[
 [1,2,3],
 [4,5,6]
]
?

Старый 08.09.2013, 20:15
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 7  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
ну во первых елементы масиива начинаются с нулевого индекса
Цитата:
Сообщение от UserSuperPupsik Посмотреть сообщение
[as3]var Arr5:Array = new Array(2);
for(i0=1;i0<=2;i0++){
Arr5[i0]=new Array(2);
}
Растолкую вам, если плохо с арифметикой

Код AS3:
var Arr5:Array = new Array(2);
это два елемента Arr5[0] и Arr5[1]

Код AS3:
for(i0=1;i0<=2;i0++){
   Arr5[i0]=new Array(2);
}
цикл выполняется два раза
1й раз Arr5[1] = new Array(2); - это еще два елемента
2й раз Arr5[2] = new Array(2); - это еще два елемента

итого получается массив
Arr5 = [undefined, [undefined,undefined], [undefined,undefined]] - 5 елементов
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 08.09.2013, 20:17
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
А какая длина у двумерного массива
Два?) А говоря о длине двухмерного массива, подразумевается сумма всех имеющихся в нем элементов?

Добавлено через 3 минуты
Код AS3:
[
 [1,2,3],
 [4,5,6]
]
я думал, что длина будет два, а у вложенных, по три.

Старый 08.09.2013, 22:07
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 9  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
А извините,я почему-то принял за истину, что
Код AS3:
var Arr:Array=new Array(2);
создает массив из 3 элементов:
Arr[0],Arr[1],Arr[2];. На самом деле за истину нужно взять утверждение, что
Код AS3:
var Arr:Array=new Array(2);
создает массив из 2 элемнтов: Arr[0],Arr[1].Всё работает, спасибо Всем за коды или/и объяснения!!!

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

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

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


 


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


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