Как вызвать более одного массива в цикле for? AS3

#arrays #for-loop #actionscript-3

#массивы #for-цикл #actionscript-3

Вопрос:

Что-то вроде этого

 var array1:Array = new Array();
var array2:Array = new Array();

for each (var mc in array1 amp;amp; mc in array2)
{ trace(mc); }
  

очевидно, что это не работает. Я тоже пробовал

 for each (var mc in array1 || mc in array2)
{ trace(mc); }
  

и

 for each (var mc in array1)
for each (var mc in array2)
{ trace(mc); }
  

Комментарии:

1. Используйте переменную итератора для (var i:int = 0; i < array1.length; i ) , а затем адресуйте элементы по их индексам: array1[i] и array2[i] соответственно.

2. С другой стороны, если вам просто нужно перебрать все элементы в нескольких массивах в одном цикле, используйте Array.concat(…) для создания временного объединенного массива .

3. Английский — это не язык программирования, вам нужно преобразовать свои операторы в форму, понятную компьютеру. Даже я не понял, что вы имели в виду, говоря об итерации двух массивов в одном цикле. Почему бы вам, например, не выполнить итерацию одного массива в одном цикле, а другого массива в другом цикле?

Ответ №1:

Попробуйте это ,

 var array1:Array = new Array();
var array2:Array = new Array();
int maxLength = 0;
int lengthArray1 = array1.length;
maxLength = lengthArray1;
int lengthArray2 = array2.length;
if (lengthArray2 > maxLength){
    maxLength = lengthArray2;
}
for (int i = 0; i < maxLength; i  ){
    if (lengthArray1 > i){
       trace(array1[i]);
    }
    if (lengthArray2 > i){
       trace(array2[i]);
    }
}