如何在Redux中存储一个排序集,并根据不同的键对其快速排序
How do I store a sorted set in Redux, and quickly sort it by various keys?
如何在Redux中存储排序集?
假设我有一个拥有大量数据的电子商务网站,但客户只拥有这些数据的一小部分。我将该数据存储为对象(键是id),并将主排序存储为数组。
问题是,当我添加越来越多的无序数据时,更新数组将花费O(n^2)并且很慢。
自然我会使用排序集,但我不确定如何在Redux中实现。
data = {
<listingID>: <listingData>,
...,
728: {
name: 'Massive 1BR apartment in prime location',
price: 4000,
sqFeet: 1000,
bedrooms: 1,
location: 'East Village'
datePosted: 1477496361164
},
1467: {
name: 'Amazing 2BR steps from Times Square',
price: 3950,
sqFeet: 820,
bedrooms: 2,
location: 'Midtown',
datePosted: 1427496322083
},
...
}
order = [..., 728, 1467, ...]
在Redux中管理数据的标准方法是以"规范化"的形式存储数据,使用以id作为键的查找表。要跟踪排序,请使用id数组。这些数组可以在reducer中构造并保存在存储中,或者根据需要使用"选择器"函数派生。
我建议您阅读Redux文档中新的"Structuring Reducers"部分,该部分对这个主题进行了更详细的介绍。
我如何处理这个问题是在组件级别,使用本地状态和javascript的原生。sort(),而不是回到整个redux状态/reducer。我认为这是有效的,特别是如果你有不同的数据集在你的redux reducer与本地状态。
我认为有一些错误在他们的代码,但这是Facebook的数据表与排序功能:https://facebook.github.io/fixed-data-table/example-sort.html。
相关文章:
- 快速排序程序未正确输出
- 为什么本机浏览器排序功能的工作速度比快速排序慢
- Javascript中的快速排序-错误过多的递归
- 在使用可排序排序期间/之后显示使用 JSON 创建的列表中的项目位置
- Go 中的快速排序实现
- 有没有人有可以在对象上使用的 Javascript 快速排序
- 如何在 Node.js 上编写快速排序
- 如何使用布局管理器重新排序/排序嵌套视图而不重新渲染
- ractive js :与模板中键部分关联的嵌套对象列表的直接 DOM 插入排序/排序 #each 顺序
- 如何根据本地存储中的变量快速排序
- jQuery UI可排序-排序时表格单元格丢失边框
- Javascript Bug中的快速排序
- 对于我的快速排序算法,我如何使它对字符串和对象也进行排序
- Javascript快速排序算法实现
- JavaScript 和 Java 中的快速排序
- 为什么这个功能版本的快速排序会中断?我该如何修复它
- 浏览器中大型XML文件的快速自然排序
- JavaScript快速排序对象
- 如何在Redux中存储一个排序集,并根据不同的键对其快速排序
- 对象数组的复合排序(排序)