如何在javascript中制作空心方块?

时间:2017-07-27 03:54:47

标签: javascript node.js for-loop

好的,所以我需要输出打印空心方块,我现在不知所措。我不想要答案,但我希望得到一些提示,以帮助我走上正轨。谢谢!

"use strict"

if (process.argv.length < 3) {
    console.log("Not enough command-line arguments given.");
    console.log("Usage: node lab13_4.js num");
    process.exit();
}

var width = parseInt(process.argv[2]);



function makeLine(width) {
    var L = "";
    for(var w = 0; w < width; w += 1) { // repeated width many times
        L = L + ".";
    }
    return L;
}

// print the line some number of times.
function printLines(line, howMany) {
    // print the right number of lines
    for (var i = 0; i < howMany; i += 1) { // repeated height many times
        console.log(line);
    }
}

for (var x = 0; x <= width; x += 1) {
    var line = makeLine(x);

    printLines(line, x);
}

2 个答案:

答案 0 :(得分:0)

如果LENGTH是正方形边长。 您必须进行嵌套循环并检查边界条件。

&#13;
&#13;
for (var i = 0; i < LENGTH; i++) {
  for (var j = 0; j < LENGTH; j++) {
    if (i == 0 || i == LENGTH - 1 || j == 0 || j == LENGTH - 1) {
      process.stdout.write("*")
    } else {
      process.stdout.write(" ")
    }
  }
  process.stdout.write("\n")
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我们正在寻找这样的解决方案:

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

正方形的顶部和底部具有完整数量的星星。 中间的所有行在行的开头只有一颗星,在行尾只有一颗星。

我使用以下函数:

function square(input) {
    // top line
    console.log('*'.repeat(input));
    // middle lines
    for(let i = 1; i < input - 1; i++) {
        console.log('*' + ' '.repeat(input-2) + '*');
    }
    // bottom line
    console.log('*'.repeat(input));
};

square(5);

希望这是有道理的:)