豆皮范儿们,今天我们来深入看几个与数组性能优化有关的case
数组的操作避免出现O(n^2)的复杂度
数组用来搜索元素的方法时间复杂度为O(n)。运行时间的增长速度与数据大小的增长速度相同,常用的如下
Array.prototype.every()
Array.prototype.find()
Array.prototype.findIndex()
Array.prototype.forEach()
Array.prototype.map()
Array.prototype.reduce()
Array.prototype.some()
如果将这些方法用在for循环内,或者两个方法嵌套使用,就会造成O(n^2)的复杂度,造成严重的性能问题。
Case 1 嵌套数组搜索操作
// bad case 嵌套了数组搜索操作
const arrayA = Array