今天,我在 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 original = {
a: 1,
branchIds: [ {
_id: "abc",
name: "abc"
}]
};
let arr = original.branchIds.map(obj => ({...obj}));
arr.push("sa");
console.log(original);
console.log(arr);
关于Javascript 将一个数组对象分配给另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408629/