dishesList1.forEach(function(item, index) { if (item.id == id) { var dis = dishesList1[index].num dishesList1[index].num += 1; var cart1 = that.data.cart; if (cart1.length > 0) { var abc = false var i = 0; cart1.forEach(function(item1, index1) { if (id == item1.id) { abc = true; i = index1 } }) if (abc) { cart1[i].num += 1; } else { cart1.push({ id: id, num: 1 }) } } else { cart1.push({ id: id, num: 1 }) } console.log(JSON.stringify(cart1)) that.setData({ dishesList: dishesList1, cartTotal: that.data.cartTotal + 1, cartPrice: parseInt(parseInt(that.data.cartPrice) + parseInt(dishesList1[index].money)), cart: cart1 }) } })
时间: 2024-02-10 20:20:22 浏览: 61
angular.foreach 循环方法使用指南
这段代码是一个小程序页面的事件处理函数中的一段代码,实现了对购物车中商品数量和价格的计算以及商品的添加功能,具体实现如下:
- dishesList1.forEach(function(item, index) { ... }) 表示遍历菜品列表(即 dishesList1 数组),找到与当前点击的菜品 id 匹配的菜品。
- if (item.id == id) { ... } 表示当找到匹配的菜品时,执行后面的代码块。
- var dis = dishesList1[index].num 表示声明一个变量 dis,该变量为当前菜品的数量。
- dishesList1[index].num += 1; 表示将当前菜品的数量加 1。
- var cart1 = that.data.cart; 表示获取当前页面的购物车对象。
- if (cart1.length > 0) { ... } 表示当购物车中已经存在商品时,执行后面的代码块。
- var abc = false 表示声明一个变量 abc,该变量的初始值为 false。
- var i = 0; 表示声明一个变量 i,该变量的初始值为 0。
- cart1.forEach(function(item1, index1) { ... }) 表示遍历购物车中已存在的商品,找到与当前点击的菜品 id 匹配的商品。
- if (id == item1.id) { ... } 表示当找到匹配的商品时,执行后面的代码块。
- abc = true; 表示将变量 abc 的值改为 true。
- i = index1; 表示将变量 i 的值改为匹配商品的下标。
- if (abc) { ... } 表示当购物车中已存在匹配的商品时,执行后面的代码块。
- cart1[i].num += 1; 表示将购物车中匹配商品的数量加 1。
- else { ... } 表示当购物车中不存在匹配的商品时,执行后面的代码块。
- cart1.push({ id: id, num: 1 }) 表示向购物车中添加新的商品,商品 id 为当前点击的菜品 id,数量为 1。
- console.log(JSON.stringify(cart1)) 表示将购物车对象转为 JSON 格式的字符串并输出到控制台。
- that.setData({ ... }) 表示更新页面的数据对象,将菜品列表、购物车商品数量、购物车商品总价以及购物车对象进行更新。
阅读全文