关于变量值叠加的问题
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呢?
回答:
你的问题在于,你实际上user.commoditys.push(this.goods)
这句代码是把this.goods的这个对象的引用push进去了
就是说user.commoditys数组里面的是this.goods的这个数组的引用
你可以把这句话改为这样user.commoditys.push(Object.assign({},this.goods));
这样就没问题了
以上是 关于变量值叠加的问题 的全部内容, 来源链接: utcz.com/p/935745.html