关于变量值叠加的问题

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

回到顶部