我想要的输出(在这种情况下)是三行“ **”,因为该行是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>
答案 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)