关于变量值叠加的问题
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
}
})
请问为何会叠加a中的元素值,会影响到固定变量c呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的问题在于,你实际上
user.commoditys.push(this.goods)
这句代码是把this.goods的这个对象的引用push进去了
就是说user.commoditys数组里面的是this.goods的这个数组的引用
你可以把这句话改为这样
user.commoditys.push(Object.assign({},this.goods));
这样就没问题了