关于变量值叠加的问题

发布于 2022-09-13 00:41:05 字数 502 浏览 14 评论 0

let a = []
let b = {na:b, nu:2}
let c = 2 // 固定变量c

// 当a为空时添加b
// 假如有多条数据注入到a后
let a = [{na:b, nu:2}, {na:bb, nu:22}, {na:bbb, nu:222}]
// 再次注入b,使原a中的b数据({na:b, nu:2})nu变量叠加,原本的c变量也同时叠加

我的代码如下

if (a.length < 1) {
  a.push(b)
}
a.forEach((item, index) => {
  if (item.na == b.na) {
    item.nu += b.nu
  }
})

image.png

请问为何会叠加a中的元素值,会影响到固定变量c呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单调的奢华 2022-09-20 00:41:05

你的问题在于,你实际上
user.commoditys.push(this.goods)
这句代码是把this.goods的这个对象的引用push进去了
就是说user.commoditys数组里面的是this.goods的这个数组的引用
你可以把这句话改为这样
user.commoditys.push(Object.assign({},this.goods));
这样就没问题了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文