for循环与if条件
for loop versus if condition
对于执行一段代码,我有两种选择。该代码基本上重置了三个数组中的所有值。其中两个是int数组,一个是boolean数组。
选择1
for (i = 0; i < array1.length; i++)
array1[i] = 0;
for (i = 0; i < array2.length; i++)
array2[i] = 0;
for (i = 0; i < array3.length; i++)
array3[i] = false;
选择2
int limit = <assign the greatest of the array lengths>
for (i = 0; i < limit; i++)
{
if (i < array1.length)
array1[i] = 0;
if (i < array2.length)
array2[i] = 0;
if (i < array3.length)
array3[i] = false;
}
这些中哪一个更快?假定阵列可以具有不同的长度并且彼此之间没有关系。
这里有一个非常好的讨论。首先列出的答案很好地解释了数组在javascript中的实际含义。对于那些感兴趣的人来说,看看吧!
这个版本肯定会更快。也更容易阅读,更短,这两个属性都比速度(99%以上的时间)重要得多。
for (i = 0; i < array1.length; i++)
array1[i] = 0;
for (i = 0; i < array2.length; i++)
array2[i] = 0;
for (i = 0; i < array3.length; i++)
array3[i] = false;
通常,访问内存中与您最近访问的数据接近的数据会更快。
这个版本也不会受到第二个版本中的额外分支的影响。
一个足够高级的编译器会将第二个版本转换为第一个版本。
基准测试:如果不首先分析整个程序,微型基准测试是100%无用的。由于我不认为性能度量是有用的,所以我不提供它们。
function reset_array(array, value) {
var len = array.length;
array.length = 0;
while (len--) array.push(value);
}
reset_array(array1, 0);
reset_array(array2, 0);
reset_array(array3, false);
相关文章:
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 如何检查if/else语句中的随机条件
- KnockoutJS:为虚拟元素使用嵌套的条件if语句
- 在if语句注释的条件内指定变量的值
- If语句只执行第一个条件并运行其他条件,但没有结果
- 我应该如何应用if-else条件来向具有不同用户角色的人显示不同的菜单
- JavaScript中的温度转换器(IF ELSE条件)
- 带有 AJAX 响应或 AJAX 响应的 IF 条件.响应.Text 不起作用
- Javascript同时执行If和Else条件(PHP)
- 在条件(if)结构的条件语句中是否有定义变量的有效方法
- 在多个条件 if 语句中什么条件是假的
- 如何仅在jquery多条件if语句中运行特定条件的代码
- 谷歌应用程序脚本条件if语句
- 哪一种方法更快?条件IF或数学公式
- 使用goTo()的条件if / else检查跳过引导过程中的步骤
- JavaScript中的正则表达式条件if-then
- AngularJs -当作用域值改变时检查条件(if - else)
- 如何使用下划线模板编写条件if语句
- 使用条件if退出程序
- 条件if对于许多值,更好的方法