javascript - 为什么函数 showStar() 不能与 (Return) 一起使用,而是根据行增加星号?

标签 javascript

function showStars(number) {

    for (let i= 0; i <=number; i++) {
      let star = "";
      for (let s = 0; s <= i; s++)
         star += "*";
      return star; 
    }
}     

console.log(showStars(3))//只有一颗星

最佳答案

您需要将 return 放在两个 for 循环之外。 返回一个值后,该值后面的任何代码(包括循环的第二次迭代)都不会运行。

代码应该是这样的:

function showStars(number) {

    for (let i= 0; i <=number; i++) {
      let star = "";
      for (let s = 0; s <= i; s++)
         star += "*";

    }

    return star; 
}     

编辑: 此外,您的星变量在循环的每次迭代中都会被重置。

我不确定您的预期输出是什么,但我想也许您打算这样做?

function showStars(number) {

    let star = "";

    for (let i= 0; i < number; i++) {

      star += "*";

    }

    return star; 
}     

关于javascript - 为什么函数 showStar() 不能与 (Return) 一起使用,而是根据行增加星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56139622/

相关文章:

javascript - 从 ASP Classic/VBScript 调用 Javascript 确认

javascript - 滑动动画损坏

javascript - 将类似哈希的字符串转换为哈希和安全风险

javascript - 较大的 Bootstrap 传送带内的较小的 Bootstrap 传送带 - 较小的 Bootstrap 传送带旋转的功能问题

javascript - Vue $emit 将参数传递给已经有参数的函数

使用 [] 而不是新数组的 Javascript 数组最佳实践?

javascript - 根据客户端输入更改 html 表中的 bgcolor

javascript - Angular js : Filter unique values and new json

php - 无法在 php 中回显 jquery(使用 ajax)变量

javascript - jQuery(.filter) : how to use numerical range instead of . 长度 <#?