我有两个循环(一个嵌套在另一个循环中),我想知道嵌套这些循环的方式是否有任何不同。代码1和代码2的结果相同(100,000x4 = 4x100,000 = 400,000),但jsPerf表示代码2比代码1快约50%。
我想请求您的建议,我不明白两者之间的区别。
非常感谢。
var tt = function () {
// do some stuff
// for example:
return (3);
};
测试代码1:
for (var i = 0; i < 100000; i++) {
for (var j = 0; j < 4; j++) {
tt();
}
}
测试代码2:
for (var j = 0; j < 4; j++) {
for (var i = 0; i < 100000; i++) {
tt();
}
}
答案 0 :(得分:2)
区别在于循环初始化代码。第一个代码必须初始化内循环100,000次,而第二个代码只执行4次。
答案 1 :(得分:1)
分析代码,好像每个操作都有成本,你会发现这是有道理的。
在测试代码2中,你被困在嵌套循环上100,000次,但是转到外循环4次。 相反,在测试代码1中,您在两者之间交替。
第一个测试代码运行的操作多于秒数。