【问题标题】:How to loop an Array with JavaScript如何使用 JavaScript 循环数组
【发布时间】:2020-05-28 06:32:10
【问题描述】:

所以我对 JavaScript 还是很陌生。我有一个问题需要解决。我走了这么远,但不知道如何走得更远。我需要使用下面的代码并在不使用 for 循环的情况下执行相同的结果。

 for(var i = 0; i < 7; i++)
    {
    console.log([...Array(i)].map(x => '*').join(""));
    }

【问题讨论】:

  • 一些替代品here

标签: javascript arrays loops foreach array.prototype.map


【解决方案1】:

我建议使用您已经使用的相同逻辑。 .map argument function has index parameter.

console.log([...Array(7)].map((x,i) =&gt; [...Array(i)].map(x =&gt; "*").join("")).join("\r\n"))

在您无权使用循环的情况下,您有递归函数选项和Array.forEach()

【讨论】:

    【解决方案2】:

    [...Array(7)] // this will create a low performance array with seven entries
    .map ( // both map and forEach provide three arguments: (value, index, array)
           // in this case we care about the index to know where in the loop we are.
      (x, i) => "*".repeat(i) // look up String.prototype.repeat.
    )
    .forEach(x => console.log(x)) // then for each iteration, call console.log

    【讨论】:

    • 非常感谢您的详细解释。我也去看看 String.prototype.padStart。
    • @StefanVisser 嗯。我没有想到这一点。只需寻找 String.prototype.repeat 因为你可以这样做:"*".repeat(7)
    【解决方案3】:

    我建议查看有关数组的文档。要在不使用 for 循环的情况下完成此操作,您可以使用 Array.forEach() 方法。

    在此处查看 MDN 文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

    【讨论】:

    • 感谢您的链接。我去看看。
    【解决方案4】:

    正如 jessica 所说,您可以使用 Array.forEach() 循环,或者如果您想拥有自己的函数来解决这个特定问题,您可以使用这个:

    var arr = ["0", "1", "0", "1"];
    
    function loop(array) {
      array.forEach(el => {
        console.log(el);
      });
    }
    
    loop(arr);

    【讨论】:

      【解决方案5】:

      递归调用它来执行相同的操作,

      function drawStar(times) {
          function drawRecursive(i) {
              if (i === times) return;
              console.log(Array(i).fill("*").join(""));
              drawRecursive(++i);
          }
          drawRecursive(1);
      }
      
      drawStar(7);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多