Написать код, который сформирует массив с вложенными массивами
Напишите программу, которая сформирует следующий массив:
[
['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() лучше