网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序之條件判斷

發布時間:2018-05-04 15:48 所屬欄目:小程序開發教程

前文:

今天踩了一下午的坑,但是確實很簡單的問題。

我說一下需求:掃描商品的二維碼,從而判斷,同一個二維碼不可多次掃描;

點擊掃一掃 會在灰色區域展示 掃描的商品信息,比如商品名稱,商品碼等,但是我們的需求是一物一碼,即使是同一個商品也是不同的商品碼。

錯誤示例:

最開始我的想法是做判斷,因為我會在相對應的js文件中定義一個 productList:[ ],數組來存放數據,

Pages({ 
productList: [用來存放,通過后臺接口得到的相關商品的數據信息]

}) 
由于我們是一物一碼,那唯一的判斷條件就是商品碼了

 

				
  1. wzy.post("/wx/open/getProdcutNameByCode", product, true)
  2. .then((res) => {
  3.  
  4. let products={
  5. name: res.data.data,
  6. code:product.code,
  7. }
  8.  
  9. let productLength = this.data.productIist.length;
  10.  
  11.  
  12. //如果列表沒有直接推,如果有循環,如果
  13. if (productLength==0){
  14. this.data.productIist.push(products);
  15. this.setData({
  16. productIist: this.data.productIist
  17. })
  18. }else{
  19.  
  20. for (let i = 0; i < productLength;i++){
  21. if (products.code == this.data.productIist[i].code){
  22. global.jv.showPop('提示','同一商品不可重復掃描')
  23. return
  24. }
  25. }
  26. this.data.productIist.push(products);
  27. this.setData({
  28. productIist: this.data.productIist
  29. })
  30. }
  31. }).catch((res) => {
  32. console.log(res)
  33. wzy.showPop('提示', '當前網絡繁忙,請重新掃描')
  34. })
  35. },

原來的思路是:

 

				
  1. .then((res) => {
  2.  
  3. let products={
  4. name: res.data.data,
  5. code:product.code,
  6. }
  7.  
  8. let productLength = this.data.productIist.length;
  9.  
  10.  
  11. //如果列表沒有直接推,如果有循環,如果
  12. if (productLength==0){
  13. this.data.productIist.push(products);
  14. this.setData({
  15. productIist: this.data.productIist
  16. })
  17. }else{
  18. // 原來思路:把數組中的每一項code取出來與掃碼得到的code進行對比,如果不相等就push到數組中 從而在頁面循環,但是發現
  19. // 當數組的length>1的情況下,會發生即使你掃碼得到的code不與原數組相同但是會重復多次,次數由productIist.length決定
  20.  
  21.             productIist.forEach(item=>{
  22. if(item.code !==this.data.productIist.code ) {
  23. this.data.productIist.push(products);
  24. this.setData({
  25. productIist: this.data.productIist
  26. })
  27. }
  28.  
  29. })
  30. }).catch((res) => {
  31. console.log(res)
  32. wzy.showPop('提示', '當前網絡繁忙,請重新掃描')
  33. })
  34. },

所以 在上面的正確的示例中 使用for循環 并把判斷也寫進for循環中 如果數組中的code與掃描的code相等 就會彈出提示框,并且不會執行下面代碼,但是當條件不相符的時候,便可以愉快的執行下面的代碼了。



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24225.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×