Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Object.assign以更新对象中的数组元素_Javascript_Arrays_Assign - Fatal编程技术网

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:…”这就是我在第二篇文章中用到的。你能把你建议的代码发给我吗?我会这样做->