Если вам нужно, чтобы результат выглядел так:
var staircase5 = [
" #",
" ##",
" ###",
" ####",
"#####"
]
Ваша функция должна быть такой:
function staircase (valueA){
const array1 = [];
for (let i = 1; i <= valueA; i++){
let step = " ".repeat(valueA-i)+"#".repeat(i);
array1.push(step)
}
return array1
}
Объяснение
В вашей функции:
function staircase (valueA){
const array1 = [];
for (let i = 0; i < valueA; i++){
let cicle = valueA[i];
let step = " #".repeat(cicle);
array1.push(step)
}
console.log(array1);
}
Я полагаю, вы вызываете функцию следующим образом:
var staircase5 = staircase(5);
В этой строке: let cicle = valueA[i];
вы пытаетесь взять каждое значение valueA (как массив) и в этой строке: for (let i = 0; i < valueA; i++)
вы используете его как число.
и в этой строке: let step = " #".repeat(cicle);
, если ваш valuaA равен 5, ваш результат будет:
[
" # # # # #",
" # # # # #",
" # # # # #",
" # # # # #",
" # # # # #"
]
В моем решении я использую i
в " ".repeat(valueA-i)+"#".repeat(i);
для перебора значений, которые вам нужны для создания массива.
Когда i
приращение " ".repeat(valueA-i)
будет отображать меньше пробелов. (ie: если i = 2 и valueA = 5, шаг будет: "", 3 пробела)
Тест:
function staircase (valueA){
const array1 = [];
for (let i = 1; i <= valueA; i++){
let step = " ".repeat(valueA-i)+"#".repeat(i);
array1.push(step)
}
return array1
}
var staircase5 = staircase(5);
console.log(staircase5)