dataHandler(opt){ const miniCartListArr = [...this.miniCartListArr] let tempArr = [] let data = {}; if (miniCartListArr.length > 0) { miniCartListArr.forEach((item, idx) => { let $item = item; if ($item.skuId == opt.skuId) { data[opt.skuId] = true tempArr.push(opt) } else { tempArr.push($item) } }) } else { opt.countNum = 1 tempArr.push(opt) } this.setMiniCartListArr(tempArr) }我是取到miniCartListArr ,如果他的个数大于0 就遍历miniCartListArr ,小于等于0 就直接把传递进来的opt推送到临时空数组里。回到遍历里面,我的目的是对比传递进来的对象ID 和遍历的当前ID 做比较,如果相同就push 传递进来的,不相同就push 当前遍历的对象,最后在把 新的tempArr(和miniCartListArr的区别就是多一个对象或者少一个对象,也有可能是改变其中一个对象) 存储起来。但是现在,发现第一次是push 进去了,后面就没有PUSH进去,函数是出发了的,但是有问题。写到这个地方遇到个小问题, 绕进去出不来了。求大佬思路。传入参数格式{ skuId: 201108293321, price: 2.89, countNum: 1}每次传入的参数对象就是这样的。
1 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
dataHandler(opt){
const miniCartListArr = [...this.miniCartListArr]
let tempArr = []
let data = {};
if (miniCartListArr.length > 0) {
miniCartListArr.forEach((item, idx) => {
let $item = item;
if ($item.skuId == opt.skuId) { // 当opt在mincarListArr中时,使用opt替换
data[opt.skuId] = true
tempArr.push(opt)
} else {
tempArr.push($item)
}
})
// 当opt不在mincarListArr中时,把opt添加在tmpArr的最后
if (!data[opt.skuId]) {
opt.countNum = 1
tempArr.push(opt)
}
} else {
opt.countNum = 1
tempArr.push(opt)
}
this.setMiniCartListArr(tempArr)
}
添加回答
举报
0/150
提交
取消