![](/img/trans.png)
[英]Javascript : Assigning one array to another array which is a property of an object
[英]Javascript assigning an array object to another array
今天,我在NodeJS编码时遇到了一个新问题,当时我正在从数据库中获取一条记录,该记录也将包含一个对象数组,并且我已将对象数组分配给一个新变量, 让它调用arr并将字符串推入arr 。 出于某些奇怪的原因,我的原始记录也不确定为什么会发生。 我知道更改/重新分配对象会影响原始对象,但是在这种情况下,不确定为什么会发生。
let original = {
a: 1,
branchIds: [ {
_id: "abc",
name: "abc"
}]
};
let arr = original.branchIds;
arr.push("sa");
console.log(original);
JsFiddle链接http://jsfiddle.net/jdqmLzbv/4/
您需要先修改数组的副本,然后再进行修改:
let arr = original.branchIds.slice();
您正在使用相同的引用,并且实际上将其推入相同的数组。 复制它,orignal将不会更新
let original = { a: 1, branchIds: [ { _id: "abc", name: "abc" }] }; let arr = original.branchIds.map(obj => ({...obj})); arr.push("sa"); console.log(original); console.log(arr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.