这是代码:
var state = {
txn:[],
do:false
}
var newState = Object.assign ({}, state,
{
txn: state.txn.slice(0,0).concat([{txnId:3, b:5}, {txnId:5, b:6}])
},
{
do: !state.do
}
);
var newState2 = Object.assign ({}, newState,
{
txn[0].txnId: 9
});
第一个
Object.assign
有效,newState
的 txn
数组填充了两个元素。第二个
Object.assign
不起作用。它说“[”是一个意外的标记。
有什么建议么?
最佳答案
可以通过以下方式实现:
var newState2 = Object.assign ({}, newState,
{
txn: newState.txn.map((item, index) => {
if (index === 0) {
return { txnId: item.txnId, b: 9 };
}
else {
return item;
}
})
});
http://codepen.io/anon/pen/yJEoJd?editors=1111
关于javascript - Object.assign 更新对象中的数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38610376/