Как чайнику разобраться с массивами в JS?
Тут перебор циклом, но не while() и не for() — может, прокатит?// случайные:
const myArray = [...Array(3)]
  .map(
    row => 
      [...Array(3)]
      .map(
        el => Math.floor(Math.random() * 10)
      )
  )
;

// диагональ, где оба индекса равны:
const diagonal = myArray
  .map(
    (row, rowIndex) => 
      row
      .map(
        (el, elIndex) => rowIndex === elIndex ? 1 : 0
      )
  )
;
// Инициализируем массив
let ourArray = [];
// и число, которым будем заполнять
let num = 0;
// и заполняем его через цикл вложенный в цикл
for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
        ourArray[i][j] = num;
        num++;
    }
}
Насчет тега не совсем понятно, какой формат вывода должен быть? Таблица?