【发布时间】:2018-01-30 19:46:53
【问题描述】:
我有一个对象数组:
let users = [{name: 'john', address: '10 king street'}, ....];
我通过以下方式复制这个数组:
let usersCopy = users.slice(0);
如果我这样做了
usersCopy[0].name = jeff;
它还在原始用户数组上更新了这个:
console.log(usersCopy[0].name) //jeff
console.log(users[0].name) //jeff
我期待看到:
console.log(usersCopy[0].name) //jeff
console.log(users[0].name) //john
【问题讨论】:
-
但我更改的是副本而不是原件。
-
就像“复制”中所说,这是一个“浅拷贝”。在您的数组中,您有另一个不会被克隆的对象(一个 json)。
-
副本谈到将相同的数组分配给不同的变量,这是一个不同的问题。
标签: javascript