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

时间:2016-09-14 10:14:10

标签: javascript javascript-objects

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

现在我想更新状态中可用的项目,并希望返回修改后数据的状态。

1 个答案:

答案 0 :(得分:0)

你可以重新分配

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,
}