Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 这两个for循环之间的区别 for(变量ctr=arr.length-1;ctr>=0;ctr--){ } 对于(变量ctr=0;ctr_Javascript - Fatal编程技术网

Javascript 这两个for循环之间的区别 for(变量ctr=arr.length-1;ctr>=0;ctr--){ } 对于(变量ctr=0;ctr

Javascript 这两个for循环之间的区别 for(变量ctr=arr.length-1;ctr>=0;ctr--){ } 对于(变量ctr=0;ctr,javascript,Javascript,第一个将从阵列的底部开始并到达顶部。第二个将从阵列的顶部到底部开始 如果您的数组有{3,2,1},并且您在第一个循环中打印它,它将打印1,2,3,在第二个循环中它将打印3,2,1 发现了这一点,它告诉我们如何提高javascript的性能。根据它 提高循环性能的另一个简单方法是将迭代器朝0递减,而不是朝总长度递增。根据每次迭代的复杂性,进行这个简单的更改可以使原始执行时间减少50% 因此,第一个将提供更好的性能 希望这对您有所帮助。第一个将从阵列的底部开始并到达顶部。第二个将从阵列的顶部到底部开

第一个将从阵列的底部开始并到达顶部。第二个将从阵列的顶部到底部开始

如果您的数组有{3,2,1},并且您在第一个循环中打印它,它将打印1,2,3,在第二个循环中它将打印3,2,1

发现了这一点,它告诉我们如何提高javascript的性能。根据它

提高循环性能的另一个简单方法是将迭代器朝0递减,而不是朝总长度递增。根据每次迭代的复杂性,进行这个简单的更改可以使原始执行时间减少50%

因此,第一个将提供更好的性能


希望这对您有所帮助。

第一个将从阵列的底部开始并到达顶部。第二个将从阵列的顶部到底部开始

如果您的数组有{3,2,1},并且您在第一个循环中打印它,它将打印1,2,3,在第二个循环中它将打印3,2,1

发现了这一点,它告诉我们如何提高javascript的性能。根据它

提高循环性能的另一个简单方法是将迭代器朝0递减,而不是朝总长度递增。根据每次迭代的复杂性,进行这个简单的更改可以使原始执行时间减少50%

因此,第一个将提供更好的性能


希望这对您有所帮助。

第一个循环向后。第二个循环向前

第一个将具有更好的性能(因为第二个必须在每次循环时访问
arr.length
),但这并不显著,除非您处理大量对象或多次循环它们

您可以通过以下方式获得类似的性能提升:

for (var ctr = arr.length - 1; ctr >= 0; ctr--) {

}

for (var ctr = 0; ctr < arr.length; ctr++) {

}
for(变量i=0,j=arr.length;i
第一个循环向后。第二个循环向前

第一个将具有更好的性能(因为第二个必须在每次循环时访问
arr.length
),但这并不显著,除非您处理大量对象或多次循环它们

您可以通过以下方式获得类似的性能提升:

for (var ctr = arr.length - 1; ctr >= 0; ctr--) {

}

for (var ctr = 0; ctr < arr.length; ctr++) {

}
for(变量i=0,j=arr.length;i
第一个循环以相反的方式在数组中循环。按元素出现顺序排列的第二个元素。

第一个元素以相反的顺序在数组中循环。元素出现顺序的第二个循环。

两个循环在数组遍历方向上不同:

  • 从最后一个元素开始,在第一个元素结束
  • 反之亦然,从第一个元素开始,最后一个元素结束
  • 哪一个是最好的,取决于你的需要


    例如,考虑查找数组中字符的第一个/最后一个匹配项的任务

    两个循环在数组遍历方向上不同:

  • 从最后一个元素开始,在第一个元素结束
  • 反之亦然,从第一个元素开始,最后一个元素结束
  • 哪一个是最好的,取决于你的需要


    例如,考虑查找数组中字符的第一个/最后一个匹配项的任务

    它们都对数组的内容进行迭代,但它们的方向相反。第一个从数组的最后一个元素开始,并向后工作到第一个元素;第二个从第一个元素开始,并向前工作到最后一个元素


    在大多数情况下,它们将提供相同的结果。但是,当您要从数组中删除元素以向后迭代(第一个代码示例)时,这是一种常见的做法,因为删除元素后对索引的任何更改都只会影响已经检查过的元素。

    它们都在数组的内容上迭代,但方向相反。第一个从数组的最后一个元素开始,并向后工作到第一个元素;第二个从第一个元素开始,并向前工作到最后一个元素


    在大多数情况下,它们将提供相同的结果。但是,当您要从数组中删除元素以向后迭代(第一个代码示例)时,这是一种常见做法,因为删除元素后对索引的任何更改都只会影响已经检查过的元素。

    关于性能,第一种情况下,
    arr.length
    只计算一次。在第二种情况下,每次循环都会计算
    arr.length
    。因此,对于包含大量项目的数组,在第1种情况下性能会更好:)关于性能,
    arr.length
    在第1种情况下只计算一次。在第二种情况下,每次循环都会计算
    arr.length
    。因此,对于一个包含大量项目的数组,性能在第1项中会更好:)我想,您的意思是“它不必”而不是“每次循环时都必须访问arr.length”。我想,您的意思是“它不必”而不是“每次循环时都必须访问arr.length”。