我如何用javascript(使用redux)构造数据,如果逻辑发生变化,它将消耗更少的内存,并且在将来很容易修改?

我如何用javascript(使用redux)构造数据,如果逻辑发生变化,它将消耗更少的内存,并且在将来很容易修改?,javascript,reactjs,data-structures,react-redux,javascript-objects,Javascript,Reactjs,Data Structures,React Redux,Javascript Objects,在budget>used下,将有一个与其父对象相关的对象数组,例如electronic,我将更改budget>used下任何对象的值,然后budget>total也将反映更改 请告知我是否应该将父逻辑和子逻辑分开。 这是我在这里的第一个问题,请原谅我的任何错误,如果您需要进一步澄清,请发表评论。我不知道您使用“当前”数组的目的是什么。如果您主要关心的是预算,也许您可以这样构造数据: budget:[{key,used[],total,isAdded}] 在redux中维护状态的主要问题之一是尽可

budget>used
下,将有一个与其父对象相关的对象数组,例如electronic,我将更改
budget>used
下任何对象的值,然后
budget>total
也将反映更改

请告知我是否应该将父逻辑和子逻辑分开。
这是我在这里的第一个问题,请原谅我的任何错误,如果您需要进一步澄清,请发表评论。

我不知道您使用“当前”数组的目的是什么。如果您主要关心的是预算,也许您可以这样构造数据:

budget:[{key,used[],total,isAdded}]


在redux中维护状态的主要问题之一是尽可能保持状态平坦。在您的数据结构中有一个对象数组,其中budget是嵌套的另一个对象,这是一个糟糕的设计,而我的结构中只有一个对象数组

谢谢您的回答。我之所以在预算下创建了另一个对象,是因为在获取和更新嵌套键值时读取代码要容易得多。你能告诉我为什么嵌套到一个级别是不合适的吗?在你的还原程序中,你不能改变状态。当您有很多嵌套时,很难在不无意中修改state对象的情况下更改state,因为所有JS对象都是通过引用传递的。当有大量嵌套时,必须在修改状态对象之前对其进行深度复制。
current: [
  { key: "Electricity", budget: { total: null, used: [] }, isAdded: false },
  { key: "Food", budget: { total: null, used: [] }, isAdded: false },
  { key: "Gas", budget: { total: null, used: [] }, isAdded: false },
  { key: "Miscellaneous", budget: { total: null, used: [] }, isAdded: false },
  { key: "Others", budget: { total: null, used: [] }, isAdded: false }
];