碎片時間學編程「352]:如果需要盡早突破,請使用 JavaScript for 循環(huán)

現(xiàn)代 JavaScript 中簡單的 for 循環(huán)的用處很少被談?wù)?。除了它在異步操作場景中特別有用之外,如果您需要盡早跳出循環(huán),它還可以使您的代碼具有更高的性能。考慮以下示例:
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
顯然,代碼沒有經(jīng)過優(yōu)化,但它突出了數(shù)組方法的問題,例如 Array.prototype.forEach() 無法提前跳出循環(huán)。為了解決這個問題,我們可以使用 for 循環(huán)和提前返回:
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
更多內(nèi)容請訪問我的網(wǎng)站:https://www.icoderoad.com