如果你需要提前跳出循环,请使用 JavaScript for 循环
现代 JavaScript 中不起眼的 for 循环的用处很少被提及。除了它在异步操作场景中特别有用之外,如果您需要尽早跳出循环,它还可以使您的代码性能更高。考虑以下示例:
const smallArray = [0, 2];const largeArray = Array.from({ length: 1000 }, (_, i) => i);
const areEqual = (a, b) => { let result = true; a.forEach((x, i) => { if (!result) return; if (b[i] === undefined || x !== b[i]) result = false; }); return result;}
areEqual(largeArray, smallArray); // false// 将遍历 `largeArray` 中的所有项目
很明显,代码没有优化,但是突出了数组方法的问题,比如 Array.prototype.forEach() 无法提前跳出循环。为了解决这个问题,我们可以使用一个 for 循环和一个 early return 来代替:
const smallArray = [0, 2];const largeArray = Array.from({ length: 1000 }, (_, i) => i);
const areEqual = (a, b) => { for (let i in a) { if (b[i] === undefined || a[i] !== b[i]) return false; } return true;}
areEqual(largeArray, smallArray); // false
// 只会循环直到遇到第一个不匹配
更多内容请访问我的网站:https://www.icoderoad.com