программа для печати «квадратного» шаблона на javascript

#javascript #line-breaks

Вопрос:

Я пробовал печатать программу с рисунком 3*5 * (звезда), но не смог правильно отформатировать ее. Может ли кто-нибудь указать мне на ошибки и помочь исправить их?

Ниже приведен код javascript:

 // Getting input via STDIN
const readline = require("readline");

const inp = readline.createInterface({
  input: process.stdin
});

const userInput = [];

inp.on("line", (data) => {
  userInput.push(data);
});

inp.on("close", () => {
  //start-here
var i,j,a=3,b=5;
for(i=1;i<=a;i  )
{
    for(j=1;j<=b;j  )
    {
        console.log("*");
    }

    console.log("n");

}

  //end-here
});
 

выход:

 *
*
*
*
*

*
*
*
*
*

*
*
*
*
*
 

нужно получить такой вывод:

 *****
*****
*****
 

Комментарии:

1. Почему вы принимаете информацию от stdin?

Ответ №1:

console.log автоматически переходит в новую строку. Вместо этого вы должны добавить переменную и зарегистрировать ее вне цикла:

 var i, j, a = 3,
  b = 5;
for (i = 1; i <= a; i  ) {
  var str = "";
  for (j = 1; j <= b; j  ) {
    str  = "*";
  }
  console.log(str   "n");
} 

Или еще лучше, вообще не используйте петлю и используйте String.repeat :

 var i, j, a = 3,
  b = 5;
for (i = 1; i <= a; i  ) {
  console.log("*".repeat(b)   "n");
}