javascript - 在 VueJS 中保持两个对象数组分开?
问题描述
我有两个对象数组:
data: {
a: [{"name":null}],
b: [{"name":null}]
},
我有两种方法。第一种方法将对象添加到“a”。第二种方法,将整个“a”复制到“b”。
methods: {
addNametoA() {
this.a.push({"name":null})
},
CopyAtoB() {
this.b = this.a
}
}
问题是一旦触发了 CopyAtoB() 方法,那么每当我将对象添加到 a 时,它也会自动将其复制到 b 中。这不应该发生,我怎样才能避免它发生?
这是一个显示此行为的 jsbin。
解决方案
在这两种情况下,您都使用相同的数组。您正在传递 areference
而不是制作数组的副本。
您需要将数组复制到CopyAToB()
. 像这样的东西:
this.b = [...this.a]
推荐阅读
- java - 如何让一个jframe窗口在屏幕上稳定,即不能拖拽移动?
- python - docker-compose up后python包不导入
- javascript - 将 if-else-if 语句转换为 Javascript 中的 switch 语句
- google-cloud-platform - 自定义日期范围查询,用于从大查询中将数据摄取到数据工作室
- c# - 将 XmlTextWriter 对象解析为字符串
- php - 从存在的键数组php中获取值
- keycloak - Keycloak 主题变量
- regex - 正则表达式:用 + 替换字符串
- javascript - Jamstack/Nuxt.js:我可以在 json 中包含 Vue 组件吗?
- r - 如何将 predict.gam 与具有偏移量的 GAM 一起使用?