因此,我一直在使用React使用ProductSearchPage
,它具有一堆过滤器值,我需要设置这些过滤器值来过滤我的产品列表并显示结果。
到目前为止,我一直将我的产品列表作为数组处理(即使我将其作为对象进行获取,也正在将其转换为数组),并且我一直在使用大量{{1 }},map
和很多forEach
遍历这些数组。
filter
,我将根据productList
进行过滤category
并根据filteredList
进行过滤priceFilters
并根据filteredList
进行过滤ratingFilter
,brandFilter
等,依此类推。我开始认为我可能会创建一个迭代的黑洞,并且在某些时候可能会损害我的性能。我正在做客户端搜索和过滤。我们正在谈论的最大产品数是2k。
所以我想知道迭代和筛选对象而不是数组会更快。我将一路删除属性并创建新对象。
所以我做了以下代码片段进行测试:
令我惊讶的是,结果非常支持数组循环。
featuresFilters
问题
是否有足够的证据表明遍历数组比遍历对象快,我应该坚持使用Looping object with for...in: 0.31ms
Looping array with forEach: 0.08ms
Looping array with filter: 0.10ms
Looping array with map: 0.09ms
,forEach
和map
方法?
注意::这确实很简单。在我的真实情况下,每个产品都是具有某些属性的对象(其中一些是嵌套属性)。因此,我的选择是将列表保留为对象数组(就像我到目前为止所做的那样),或者我可以将每个产品的大对象filter
保留为该对象的属性。这会改变结果吗?
allProducts