Написать код, который сформирует массив с вложенными массивами

Напишите программу, которая сформирует следующий массив:

[
    ['x'],
    ['x', 'x'],
    ['x', 'x', 'x'],
    ['x', 'x', 'x', 'x'],
    ['x', 'x', 'x', 'x', 'x'],
]

то, что сделал я:

 let arr = []; // Создал массив, в который буду пушить "х"
 for (let i = 0; i < 5; i++) //создал цикл в котором будет 5 итераций подряд
 arr.push("x");
 console.log(arr); // Получил "лестницу" массивов
 }

Не могу понять как каждую итерацию цикла пушить в массив. Создать еще один цикл? Создать еще один массив?


Ответы (2 шт):

Автор решения: ksa

я не могу понять как каждую итерацию цикла пушить в массив

Как вариант...

const n = 5
const a = Array.from({length: n}, (_, i) => new Array(i + 1).fill('x'))
console.log(a)

→ Ссылка
Автор решения: Dev18

По-моему ваша идея почти правильная, но для достижения нужного результата вам нужно на каждой итерации цикла добавлять не просто символ "x", а массив с определённым количеством элементов "x"

Изменю ваш код с комментариями

let arr = []; // Изначально пустой массив

for (let i = 1; i <= 5; i++) {
    let innerArr = []; // Внутренний массив для каждой строки
    for (let j = 0; j < i; j++) {
        innerArr.push('x'); // Добавляем 'x' нужное количество раз
    }
    arr.push(innerArr); // Добавляем внутренний массив в основной массив
}

console.log(arr);

компактный вариант с Array.from() лучше

→ Ссылка