我们如何更新 javascript 中特定对象的对象?

How can we update object of a particular object in javascript?

let items = state.refundHistory.items.map((o, idx) => {
  o.body.payment.loader = true;
  return o;
});

现在我想更新状态中可用的项目,并想 return 使用修改后的数据状态。

您可以重新分配

let items = state.refundHistory.items.map((o, idx) => {
  o.body.payment.loader = true;
  return o;
});
state.refundHistory.items = items;
return state;

你也可以处理这个内联

state.refundHistory.items = state.refundHistory.items.map((o, idx) => {
  o.body.payment.loader = true;
  return o;
});

return state;

不过最好还是使用 .forEach。这样可以省去分配新数组的麻烦。

state.refundHistory.items.forEach(item => {
  item.body.payment.loader = true;
});
return state;

某些库(例如 redux)要求您创建一个全新的对象,在这种情况下展开运算符非常方便

let items = state.refundHistory.items.map((o, idx) => {
  o.body.payment.loader = true;
  return o;
});

return {
  refundHistory : {
      items : items,
      ...state.refundHistory
  },
  ...state,
}