给定数字而不是数组的功能循环

新手上路,请多包涵

假设我手头有一个数字 18,而不是一个数组。

在给定数字 X 而不是 X 元素数组的情况下,在 JS 中创建 功能 循环的最佳方法是什么?

我可以做这个:

 [1,2,3].forEach(function(){

));

但如果我有数字 3

我可以

for(var i = 0; i < 3; i++){

}

但我希望该循环能够正常工作

原文由 Alexander Mills 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 203
2 个回答

我不明白你为什么要这样做。相当于:

 [1,2,3].forEach(function(){ ... ));

var limit = n;
while (--limit) {(  // Note: 0 is falsy
    function(){ ... }
)(limit);}

或者,如果您真的想使用数组结构,则可以执行以下操作:

 new Array(limit).fill(0).forEach(function(){...});

您可能 对今日神话:函数式程序员不使用循环 感兴趣。

原文由 RobG 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你有一个数字并且你想创建一个循环,那么你可以在 for 循环中使用限制条件中的数字。

for(var i = 0; i < number; i++)

编辑 1: 您只能在数组上使用 foreach ,在这种情况下,因为您已经有了一个数字,您可以创建一个该长度的数组,然后在其上使用 foreach。

var foo = new Array(number).fill(0);

foo.foreach()

另一种选择是

var N = 18;

Array.apply(null, {length: N}).map(Number.call, Number)

结果 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]

此线程中提供了更多选项 创建一个包含 1…N 的 JavaScript 数组

原文由 Rajshekar Reddy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题