[如何使用另一个函数创建一个函数以输出与JavaScript中的字符一样多的行?例如:4行,每行4个“#”。基本上是一个正方形

问题描述 投票:0回答:2

[使用javascript学习功能。提示首先创建一个名为makeLine的函数,然后在制作makeSquare函数时使用makeLine函数。这是我的makeLine代码

function makeLine(size){
  for (let i = 0; i < size - 1; i++){
  hash= hash[i] + hash;
  }
    console.log(hash);
}

我一直在尝试使makeSquare函数使用makeLine函数,但我可以将其显示为16#,但仅限于同一行。当我尝试使用console.log和\ n时,控制台将输出未定义的内容。

function makeSquare(squareSides){
   makeLine(squareSides*squareSides);

}

makeSquare(4);

我正在尝试实现的输出

####
####
####
####

这只是我一直在玩的骨架。我已经尝试了一百万种不同的组合,但这是我获得正确数量的#的唯一方法。我确信这对任何有经验的人都是简单的,但是我碰到了砖墙,接下来的练习都取决于对这一点的理解。我看到的与此相关的所有代码都比我现在掌握的知识和技能高出一点。

javascript function
2个回答
0
投票

这是我对您的makeLine()makeSquare()的建议:

function makeLine (sideLength) {
  return '#'.repeat(sideLength);
}

function makeSquare (sideLength) {
  return Array(sideLength).fill(makeLine(sideLength)).join('\n');
}

console.log(makeSquare(16));

[注意,我正在使用Array(count)创建长度为count的数组,然后使用fill()为其填充值,然后使用join()将数组转换为字符串,并指定一个字符以加入值。


0
投票

您可以使用String.prototype.repeat()方法多次复制相同的字符串以创建一行。

String.prototype.repeat()中,在循环中创建行并将其添加到数组中。当所有行都在数组中时,请使用makeSquare将数组转换为介于Array.prototype.join()之间的字符串。

Array.prototype.join()
© www.soinside.com 2019 - 2024. All rights reserved.