JS 循环-陷入逻辑死区,求解答。
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
}
每次传入的参数对象就是这样的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果评论里的逻辑是对的。应该做有改无增的操作,而id不同的时候你并没有push。
arr2 = [...arr1]
这么写并不是个真的深拷贝。