Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当长度大小可用时,ES6的For循环语法_Javascript - Fatal编程技术网

Javascript 仅当长度大小可用时,ES6的For循环语法

Javascript 仅当长度大小可用时,ES6的For循环语法,javascript,Javascript,我有一个X值,它应该是我的循环的“长度”(例如): 我需要运行for循环来运行length次。没有对象/数组/我运行的任何对象,没有超出参考值长度的对象。有没有比这更好或更干净的方法来编写for循环或创建在ES6中运行length次的循环 for(let i = 0; i < length ; i++) for(设i=0;i

我有一个X值,它应该是我的循环的“长度”(例如):

我需要运行for循环来运行
length
次。没有对象/数组/我运行的任何对象,没有超出参考值
长度的对象。有没有比这更好或更干净的方法来编写for循环或创建在ES6中运行
length
次的循环

for(let i = 0; i < length ; i++)
for(设i=0;i
一个优雅的方法是为索引创建一个生成器:

  function* range(from, to) {
    for(let i = from; i < to; i++)
       yield i;
  }

 for(const i of range(0, length)) /*...*/
函数*范围(从,到){
for(设i=from;i

但这是过度工程。一个简单的for循环很好。

我不认为有一个更完美的解决方案。你可以这样写

new Array(length).forEach(() => {
  // do something
})

但是,如果这是一个更优雅的解决方案,这是一个意见问题。

有什么不“更好”呢?我想问,基于这种情况,是否有更先进的方法在ES6中编写for循环。如果这是最好的语法,那就太完美了。如果你动态(甚至懒散地)生成一个循环序列,你可以让它更“高级”…但我不会说它更好。
对于(让I=0;I<10;I++)
你可以保存一个变量-@GrafiCode
,而(length--)
甚至更短,如果
I
不需要的话。假设
length
永远不会是负数(或者你得到一个无限循环)
,但这太过工程化了xD@grafiCode嗯,在使用中缀符号和运算符重载的语言中,这是非常有用的,例如,
for(i in 0直到长度步长2)
(Kotlin)。但在JS中,好处相当有限。
new Array(length).forEach(() => {
  // do something
})