繁体   English   中英

将一个数组对象分配给另一个数组的Javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM