@Okalasha

Как чайнику разобраться с массивами в JS?

Помогите пожалуйста решить задачку - "Создайте двумерный массив 3 на 3 с любыми числами.
Напишите скрипт, который диагональные элементы сделает равными 1, а остальные 0. То есть элементы[0][0], [1][1], [2][2] – 1, а остальные 0. Сделайте это без цикла.".
С циклом всё просто и понятно, а вот без цикла не представляю как это сделать, весь вечер голову ломал.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Тут перебор циклом, но не 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
      )
  )
;
Ответ написан
profesor08
@profesor08 Куратор тега JavaScript
const arr = [...new Array(3)].map((_, i) => [...new Array(3)].map((_, j) => i === j ? 1 : 0));

// 1 0 0
// 0 1 0
// 0 0 1
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
meowto16
@meowto16
Делаю штуки
// Инициализируем массив
let ourArray = [];
// и число, которым будем заполнять
let num = 0;
// и заполняем его через цикл вложенный в цикл
for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
        ourArray[i][j] = num;
        num++;
    }
}


Насчет тега не совсем понятно, какой формат вывода должен быть? Таблица?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы