创建一个函数,该函数创建“ *”的x行和y列

时间:2019-10-28 04:09:55

标签: javascript html

我想要的输出(在这种情况下)是三行“ **”,因为该行是3,该列是2。       

  function drawbox(row,column){
    for (var j=0;j<row;j++)
    {
    for (var i=0;i<column;i++)
    {   document.write("*");
        if (i=(column-1))
          {document.write("<br>")}

    }

    }              
  }

  drawbox(3,2);


</script>

5 个答案:

答案 0 :(得分:4)

简单-只需使用两个循环,但不必担心if

function drawBox(row, column) {
  for (let i = 0; i < row; i++) {
    for (let j = 0; j < column; j++) {
      document.write("*");
    }
    document.write("<br>");
  }
}

drawBox(3, 2);

答案 1 :(得分:2)

我们可以使用repeat函数

 <script> 


  function drawbox(row,column){
    for (var j=0;j<row;j++)
    {

     document.write("*".repeat(column));

     document.write("<br>")

    }              
  }

  drawbox(3,2);


</script>

答案 2 :(得分:1)

ES6和函数式编程的另一种答案(因为我非常喜欢FP):

function drawbox(row,column){
    const row = Array(column).fill().map(() => '*').join('');
    const rows = Array(row).fill().map(() => row).join('<br/>');
    document.write(rows);   
}

答案 3 :(得分:1)

我认为最简单的方法:

conn = sqlite3.connect("ce.db") # here is misspelled database name

还请注意:由于您正在使用赋值运算符,因此您的函数无法正常工作:

function grid(row, col){
    document.write(Array(row).fill(Array(col).fill('*')).join('<br>'));
}

...当您应该使用相等比较运算符时:

if (i=(column-1))

答案 4 :(得分:1)

我早年学到的东西。当处理二维数据结构时,从结构上讲第二维通常是多余的。

以2维显示数据也仅需要1个循环,而不需要其他解决方案中所示的2个和4个循环。

source ~/.bashrc

在for循环中,只能通过模块运算符-> const drawbox = (r, c) => { for (let ri = 1, i = 0; i < r*c; ri++, i++) { document.write('*') if (ri >= r && i !== r*c) { document.write('<br>') ri = 0 } } } 使用i(无ri)来确定是否应插入换行符。

if (i%r === 0)