【问题标题】:How can I loop this a certain number of times? (js)我怎样才能循环这个一定次数? (js)
【发布时间】:2021-07-26 22:49:25
【问题描述】:

我想重复某个文本 N 次。这个 N 可以是任意数字,我会在 multip("", N) 的最后一行输入它。在这种情况下,N = 3。

但是,它只是不起作用。关键是要获得一个函数来接收文本和重复次数,使其重复文本N次然后停止,但我不能,我只是不知道出了什么问题。

function multip(text, repetitions) {
    let counter = repetitions;
    while(counter < repetitions) {
        counter++;
    }
    
    return text + "lalala";
}

multip("", 3);

【问题讨论】:

  • 如果counter = repetitions,为什么条件while(counter &lt; repetitions)会返回true?
  • 我不确定这样做是否可行,但我在函数中声明每次函数运行时计数器都会得到 +1;我对 counter = 重复部分的目标是将这两个元素相互关联。老实说,我不确定自己在做什么

标签: javascript function loops


【解决方案1】:

类似这样的:

function multip(text, repetitions) {
    let counter = 0;
    let res = ''
    while(counter < repetitions) {
        res += text;
        counter++;
    }
    return res;
}
multip('la',3);//lalala

function multip(text, repetitions) {
    let counter = 0;
    let res = ''
    while(counter < repetitions) {
        res += text;
        counter++;
    }
    return res;
}
console.log(multip('la',3))

【讨论】:

    【解决方案2】:

    这里有一个更简单的解决方案。只需使用字符串的原生.repeat() 函数即可。

    console.log("HelloWorld".repeat(3))

    【讨论】:

      【解决方案3】:

      你可以使用一个简单的for循环和串连+=

      function multip(text, repetitions) {
        let string = '';
        for (let i = 0; i < repetitions; i++) string += text;
        return string
      }
      
      const concatenateString = multip('la', 3);
      
      console.log(concatenateString);

      【讨论】:

        【解决方案4】:

        当事先知道“次数”时,要使用的循环是for循环:

        function multip(text, repetitions) {
          for (let i = 0; i < repetitions; i++) {
            console.log(text + "lalala");
          }
        }
        
        multip("", 3);

        while 循环在您事先不知道要运行循环多少次时使用。

        【讨论】:

        • 也许我知道原因......你的问题有一个返回某些东西的函数,我的回答没有说​​明这一点。如果您的目标确实是拥有这种行为,那么 AlTheLazyMonkey 的答案就是要考虑的答案,它使用 for 字符串并返回连接值。现在的其他答案可以解决问题,但在这种情况下指示使用for 循环,如果您想更进一步,而不仅仅是重复一个字符串,那么工作时的 repeat() 可能不太通用......
        • 事实上,我不赞成您的回答,因为我知道@Elysa 想要一个返回字符串的函数,该函数在输入字符串中重复 N 次,但是在我再次阅读问题后,它有点模棱两可,我也赞成您的回答,以补偿未知的反对者。对不起我的错。
        • 没有伤害,这真的与否决票无关,更多的是关于我可以在回答中改进的地方。老实说,在重新阅读了试图理解否决票的问题后,我意识到我确实可能没有完全回答,但我的意思主要是坚持for 循环准确回答问题的标题:-)
        • 对不起,如果我的问题模棱两可,我是 JS 新手,所以我真的不知道如何准确地表达我遇到的问题。不过感谢大家的帮助:)
        猜你喜欢
        • 2020-06-07
        • 2020-08-14
        • 1970-01-01
        • 2022-12-18
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多