Как заполнить многомерный массив в JavaScript? - PullRequest
0 голосов
/ 01 января 2019

Я пытался заставить это работать, но внешний цикл останавливается после второй итерации, и все, что после него, не выполняется (точно так же, как это был конец сценария).Я хочу заполнить двумерный массив любым символом (здесь я использовал 'q' в качестве примера)

var A=[[],[]];
for(var i=0;i<12;i++){
    for(var j=0;j<81;j++){
        A[i][j]='q';
    }
}

Это не сработало, поэтому я поставил alert(i+' '+j);, чтобы посмотреть, выполняется ли оно вообще, иКак я писал ранее, он останавливается после второй итерации внешнего цикла, а затем игнорирует оставшуюся часть сценария.

Все, что я хочу, это заполнить этот массив тем же символом в заданном диапазоне (12 строк, 81столбцы в данном конкретном случае), так что если в этом методе нет надежды, я буду рад увидеть тот, который работает.

Ответы [ 3 ]

0 голосов
/ 01 января 2019

Вам нужно инициализировать новый массив для i каждый раз, когда запускается первый цикл, и вам не нужно устанавливать макет массива перед его созданием (Удалите [], [] внутри объявления A).Попробуйте это:

var A = [];
for (var i = 0; i < 12; i++) {
  A[i] = [];
  for (var j = 0; j < 81; j++) {
    A[i][j] = 'q';
  }
}
console.log(A);
.as-console-wrapper { 
    max-height: 100% !important; 
    top: 0; 
}
0 голосов
/ 01 января 2019

const range = (start, stop, step) => Array.from({ length: (stop - start) / step }, () => 'q');

let twoDArray = []
for(i=0; i<12; i++){
  twoDArray.push(range(0,81,1))
}

console.log(twoDArray)

Альтернатива

function genrateTwoDArray({
  rows,
  columns,
  defaultValue
}){ return Array.from({ length:rows}, () => (
      Array.from({length: columns}, ()=> defaultValue )
   ))
}
console.log(genrateTwoDArray({rows:3, columns:9, defaultValue: 'q'}))
0 голосов
/ 01 января 2019

var A=[[], []];

^ В этой строке объявляется двумерный массив размером 1x2.Попробуйте вместо этого:

var A = [];
for (var i = 0; i < 12; i++) {
    A[i] = [];
    for (var j = 0; j < 81; j++) {
        A[i][j] = 'q';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...