Javascript Object.assign的奇怪行为

Javascript Object.assign的奇怪行为,javascript,assign,Javascript,Assign,我一直坚持使用javascript中奇怪的赋值行为 在此代码中 state = Object.assign({}, state, { [area]: Object.assign({}, state[area], { [name] : Object.assign({}, state[area][name], { selected: [value] }) }) }) conso

我一直坚持使用javascript中奇怪的赋值行为

在此代码中

state = Object.assign({}, state, {
         [area]: Object.assign({}, state[area], {
           [name] : Object.assign({}, state[area][name], {
             selected:  [value]
           })
         })
       })

console.log(state) //state[area][name].selected is unchanged!
但如果我尝试控制台log Object.assign

console.log(Object.assign({}, state, {
              [area]: Object.assign({}, state[area], {
                [name] : Object.assign({}, state[area][name], {
                  selected:  [value]
                })
              })
           })); 
//it returns object with value in obj[area][name].selected, as expected
我错了什么

编辑:
Object.assign工作正常。 在本例中,问题在于console.log显示的不是实际数据,而是对对象的引用。
我真正的问题是在某个react组件中处于突变状态(array.pop())。

我在这里找不到问题,代码工作正常(请参阅)。问题一定出在其他地方。
console.log
的有趣之处在于输出是实时的。请在您的最后一行尝试
console.log(JSON.stringify(state,null,”)
谢谢您的评论!我想这个问题已经问完了。我的问题不在于console.log。非常感谢。