Javascript Object.assign以更新对象中的数组元素
代码如下:Javascript Object.assign以更新对象中的数组元素,javascript,arrays,assign,Javascript,Arrays,Assign,代码如下: 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
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
数组中填充了两个元素
第二个对象.assign
不工作。
上面说“[”是一个意外的标记
有什么建议吗?可以通过以下方式实现:
var newState2 = Object.assign ({}, newState,
{
txn: newState.txn.map((item, index) => {
if (index === 0) {
return { txnId: item.txnId, b: 9 };
}
else {
return item;
}
})
});
没有
txn
,它是对象中的一个键,不是变量,它必须是newState.txn
,但它在第一个对象中工作。assign.no它不工作,你在第一个对象中不使用txn
,你用这个名称设置一个键,然后使用state.txn
,而不仅仅是txn
,在我使用的第一个“txn:…”这就是我在第二篇文章中用到的。你能把你建议的代码发给我吗?我会这样做->