核心:循环次数少的放在外层,减少内层变量的操作次数
// 嵌套方式一 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
循环体内执行次数为:1,000,100,100 次
循环体内执行次数为:110,010,000 次