【发布时间】:2019-04-27 18:09:41
【问题描述】:
在 redux 和其他情况下,我们可能希望规范化本质上是关系的 JavaScript 对象,而不是深度嵌套的对象。
例如,redux 显示了一个建议拆分代码的配方:
const byID = {
'1': {
some: 'object'
},
'2': {
some: 'objectAgain'
},
'3': {
some: 'objectAnotherAgain'
},
};
const allIds = ['1', '2', '3'];
但是,与仅调用类似于以下内容的方法相比,保留该 allIds 数组的优势是什么:
Object.keys(byId);
将所有对象键作为数组保存是否更快?还是它们具有相似的时间复杂度?持有数组中的每个键不会是重复代码吗?
【问题讨论】:
-
一个可能很重要的区别是您可以指望
allIds的订单,但不能指望Object.keys(byId)。 -
Object.keys(byId) 返回与 allIds 完全相同的数组,但 redux 的目的是将所有数据尽可能平坦地存储在一个对象中,对吧?在对象之外调用 .keys() 方法而不保存它会与此相反...
-
@StephanT。我现在看到了这个观点。我很高兴可能将其标记为正确答案?看来这确实有助于我在这件事上做出决定。
标签: javascript redux normalization