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

Javascript 创建一个函数,用于创建“*”的x行和y列,javascript,html,Javascript,Html,我想要的输出是**的三行,因为行是3,列是2。 简单-只需使用两个循环,但不必担心以下情况: 函数drawBoxrow,column{ 对于设i=0;iArrayc.fill.map=>“*”。join.joinYeah!这就是解决我问题的方法。非常感谢你!这需要更多的逻辑和创造力,谢谢!将文档粘贴到循环之外 if (i===(column-1)) <script> function drawbox(row,column){ for (var j=0;j&l

我想要的输出是**的三行,因为行是3,列是2。


简单-只需使用两个循环,但不必担心以下情况:

函数drawBoxrow,column{ 对于设i=0;i抽屉3,2 ES6和函数式编程的替代答案,因为我非常喜欢FP:

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

我认为最简单的方法是:

function grid(row, col){
    document.write(Array(row).fill(Array(col).fill('*')).join('<br>'));
}
…当您应该使用相等比较运算符时:

if (i===(column-1))
我们可以使用函数


我早年学到的东西。当处理二维数据结构时,结构意义上的第二个维度通常是冗余的

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

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
    }
  }
}

非常感谢。你的答案简单得多。你能告诉我为什么我的函数不起作用吗?这里的逻辑缺陷是什么?谢谢!const drawbox=r,c=>document.writeArrayr.fill.map=>Arrayc.fill.map=>“*”。join.joinYeah!这就是解决我问题的方法。非常感谢你!这需要更多的逻辑和创造力,谢谢!将文档粘贴到循环之外
if (i===(column-1))
 <script> 


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

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

     document.write("<br>")

    }              
  }

  drawbox(3,2);


</script>
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
    }
  }
}
const drawbox = (r, c) => {
  for (let i = 1;  i < r*c+1; i ++) {
    document.write('*')
    if (i%r === 0 && i !== r*c) {
      document.write('<br>')
    }
  }
}