вложенные циклы на js

Рейтинг: 0Ответов: 1Опубликовано: 18.03.2023

вот такая задача мне попалась, решил я её как смог, подскажите более лучшее решение этой задачи и если можно немного с пояснением к решению, благодарю.

let out_12 = document.querySelector('.out_12');
let button12 = document.querySelector('.b_12');

button12.onclick = () => {
    for(let i = 5; i <= 5; i++){
        out_12.innerHTML += `&nbsp;&nbsp;&nbsp;&nbsp; ***** &nbsp;&nbsp;<br>`;
    }
    for(let k = 7; k <= 7; k++){
        out_12.innerHTML += `&nbsp;&nbsp; ******* &nbsp;<br>`;
    }
    for(let k = 9; k <= 9; k++){
        out_12.innerHTML += `&nbsp;*********`;
    }
}
<section>
            <p>
                С помощью вложенных циклов и символа * нарисуйте:
                <pre>
            *****<br>
           *******<br>
          *********
                </pre>
            </p>
            <div class="out_12"></div>
            <button class="button-primary b_12">task-12</button>
        </section>

Ответы

▲ 0Принят

Эта задачка направлена на то, что бы образовалось хорошее понимание того, как работают вложенные циклы. В примере, внутри цикла, мы видим ещё 2 цикла. Результат записываем в переменную result. Первый цикл с j, добавляет пробел, второй цикл c j нужное количество звездочек, Потом перенос строки, и повтор. На ютубе если поискать star pyramid, можете найти множество примеров на различных языках с пояснениями.

const lines = 5;
let result = '';

for (let i = 0; i <= lines; i++) {
    for (let j = 0; j < lines - i; j++) {
        result += " ";
    }
    for (let j = 0; j < 2 * i + 1; j++) {
        result += "*";
    }
    result += "\n";
}

console.log(result)

//     *
//    ***
//   *****
//  *******
// *********
//***********