我正在使用redux,然后我需要能够从对象中删除一个键而不会改变它。
但是当从克隆中删除 netsed 键时,原始对象也会发生变异。像这样:
let t1 = {a: { a1: 'test' }}
let t2 = Object.assign({}, t1}
delete t2['a']['a1']
t2 // { a: {} } // ok.
t1 // { a: {} } // Not ok !
任何提示?
答案 0 :(得分:0)
好的。我错过了Shallow / deep copy的区别。
所以现在,我最终得到:
let t1 = { a: { a1: 'test'}}
let t2 = JSON.parse(JSON.stringify(t1))
delete t2['a']['a1']
t2 // { a: {} }
t1 // { a: { a1: 'test' } }