三角测验无法弄清楚如何做到这一点



指示:对于此测验,您将创建一个称为buildtriangle()的函数,该函数将接受输入(三角形的宽度最大),并将构建一个三角形。请参阅下面的示例输出。

buildtriangle(10);返回https://ibin.co/3dv8ajw80rxv.png请参阅图像

我们已经为您提供了一个函数makeline()。该功能具有线长度,并构建星号线,并用newline字符返回线路。

function makeLine(length) {
  var line = "";
  for (var j = 1; j <= length; j++) {
    line += "* "
  }
  return line + "n";
}

您需要在buildtriangle()中调用此makeline()函数。

这将是您编写的最复杂的程序,因此请花一些时间在潜入代码之前考虑问题。您需要哪些工具从JavaScript工具带中?专业人士在编写任何内容之前就计划了代码。仔细考虑您的代码需要按顺序进行并写下它们的步骤。然后浏览您的列表,然后将每个步骤转换为实际代码。祝你好运!

my code!!
/*
 * Programming Quiz: Build A Triangle (5-3)
 */
// creates a line of * for a given length
let line;
function makeLine(length) {
     line = "";
    for (var j = 1; j <= length; j++) {
        line += "* ";
    }
    return console.log(line + "n");
}
// your code goes here.  Make sure you call makeLine() in your own code.
function buildTriangle(num) {
    for(var i = 1;i < num+1;i++) {
        makeLine(i);
    }
}
buildTriangle(10);

只能使用函数和循环没有额外的疯狂内容更好吗?

我认为您本来不是要(当然不是)更改makeLine()功能。由于它以字符串返回单行,因此您只需要在呼叫者中接收它并以某种方式采取行动。

换句话说,您的循环是恰好您需要的东西(为此而言),但是,使用原始函数,它将是:

function buildTriangle(num) {
    var triangle = "";
    for(var i = 1; i <= num; i++) {        // add each line in turn.
        triangle += makeLine(i);
    }
    return triangle;                       // return the whole thing.
}
console.log(buildTriangle(10));            // or alert if you prefer.

您会注意到我稍微改变了您的for循环终端条件,我认为这是更有意义的(一个通过N包含在内,而不是一个包含在n 1的独家中)。

,并且,由于您是 building 三角形,因此您不应该在功能中打印它。函数名称应该反映他们的工作(这也是为什么我认为更改makeLine()是一个坏主意,以便输出线路)。

相反,应将构建的三角形返回到呼叫者,在那里他们可以按照自己的意愿做任何事情。在这种情况下,这意味着要打印它,但是他们可能想将其附加到电子邮件,将其保存到文件或将其用作加密密钥: - )。

function makeLine(length) {
    var line = "";
    for (var j = 1; j <= length; j++) {
        line += "* ";
    }
    return line + "n";
}
function buildTriangle(num){
    var triangle = "";
    for(var i = 1 ; i<=num ; i++){
        triangle+= makeLine(i);
    }
    return triangle;
}
console.log(buildTriangle(20));

相关内容

最新更新