核心:循环次数少的放在外层,减少内层变量的操作次数
// 嵌套方式一
function first() {
let startTime = new Date().getTime();
for (let i = 0; i < 100; i++) {
for (let j = 0; j < 1000; j++) {
for (let k = 0; k < 10000; k++) {}
}
}
let endTime = new Date().getTime();
return endTime - startTime + 'ms';
}
// 嵌套方式二
function second() {
let startTime = new Date().getTime();
for (let i = 0; i < 10000; i++) {
for (let j = 0; j < 1000; j++) {
for (let k = 0; k < 100; k++) {}
}
}
let endTime = new Date().getTime();
return endTime - startTime + 'ms';
}
console.log(first()); // 382ms
console.log(second()); // 501ms
嵌套方式一
- i 执行 1 次 j 就会执行 1000 次 k 就会执行 1000 * 10000 次
- i 执行 100 次 j 就会执行 100 _ 1000 次 k 就会执行 100 _ 1000 * 1000