微信小程序之条件判断

前文:

今天踩了一下午的坑,但是确实很简单的问题。

我说一下需求:扫描商品的二维码,从而判断,同一个二维码不可多次扫描;

点击扫一扫 会在灰色区域展示 扫描的商品信息,比如商品名称,商品码等,但是我们的需求是一物一码,即使是同一个商品也是不同的商品码。

错误示例:

最开始我的想法是做判断,因为我会在相对应的js文件中定义一个 productList:[ ],数组来存放数据,

Pages({
    productList: [用来存放,通过后台接口得到的相关商品的数据信息]

})

由于我们是一物一码,那唯一的判断条件就是商品码了

wzy.post("/wx/open/getProdcutNameByCode", product, true)
             .then((res) => {

               let products={
                 name: res.data.data,
                 code:product.code,
               }

               let productLength = this.data.productIist.length;

              //如果列表没有直接推,如果有循环,如果
               if (productLength==0){
                 this.data.productIist.push(products);
                 this.setData({
                   productIist: this.data.productIist
                 })
               }else{

                 for (let i = 0; i < productLength;i++){
                   if (products.code == this.data.productIist[i].code){
                      global.jv.showPop(‘提示‘,‘同一商品不可重复扫描‘)
                      return
                    }
                 }
                 this.data.productIist.push(products);
                 this.setData({
                   productIist: this.data.productIist
                 })
               }
             }).catch((res) => {
               console.log(res)
               wzy.showPop(‘提示‘, ‘当前网络繁忙,请重新扫描‘)
             })
         },

原来的思路是:

 .then((res) => {

               let products={
                 name: res.data.data,
                 code:product.code,
               }

               let productLength = this.data.productIist.length;

              //如果列表没有直接推,如果有循环,如果
               if (productLength==0){
                 this.data.productIist.push(products);
                 this.setData({
                   productIist: this.data.productIist
                 })
               }else{
                 // 原来思路:把数组中的每一项code取出来与扫码得到的code进行对比,如果不相等就push到数组中 从而在页面循环,但是发现
 // 当数组的length>1的情况下,会发生即使你扫码得到的code不与原数组相同但是会重复多次,次数由productIist.length决定

            productIist.forEach(item=>{
                   if(item.code !==this.data.productIist.code ) {
                    this.data.productIist.push(products);
                 this.setData({
                   productIist: this.data.productIist
                 })
        }

})
             }).catch((res) => {
               console.log(res)
               wzy.showPop(‘提示‘, ‘当前网络繁忙,请重新扫描‘)
             })
         },              

所以 在上面的正确的示例中 使用for循环 并把判断也写进for循环中  如果数组中的code与扫描的code相等 就会弹出提示框,并且不会执行下面代码,但是当条件不相符的时候,便可以愉快的执行下面的代码了。

文中的wzy封装的方法

原文地址:https://www.cnblogs.com/wzy0526/p/8298274.html

时间: 2024-08-06 10:36:12

微信小程序之条件判断的相关文章

微信小程序-if条件渲染

#index.wxml <view>今天吃啥</view> <view wx:if="{{condition==1}}"> 饺子 </view> <view wx:elif="{{condition ==2}}"> 馒头 </view> <view wx:else> 面条</view> #index.js data: { "condition":Mat

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

小程序开发运营必看:微信小程序平台运营规范

一.原则及相关说明 ? 微信最核心的价值,就是连接——提供一对一.一对多和多对多的连接方式,从而实现人与人.人与智能终端.人与社交化娱乐.人与硬件设备的连接,同时连接服务.资讯.商业. ? 微信团队一直致力于将微信打造成一个强大的.全方位的服务工具.在此基础上,我们推出了微信小程序这个产品,提供给微信小程序的开发者在微信内搭建和实现特定服务.功能的平台.通过全面开放的能力,我们将更多连接的可能给予企业和服务提供者,并为微信小程序提供基础的接入能力.运营环境和规则体系,进而帮助更多的企业和服务提供

微信小程序视图层WXML_小程序条件渲染

微信小程序视图层WXML_小程序条件渲染 wx:if 在微信小程序的框架中,我们用wx:if="{{condition}}"来判断微信小程序页面是否需要渲染该代码块: <view wx:if="{{condition}}"> True </view> 也可以用wx:elif和wx:else来添加一个else块: <view wx:if="{{length > 5}}"> 1 </view> &

微信小程序视图层WXS_条件语句

微信小程序视图层WXS_条件语句 if 语句 在 WXS 中,可以使用以下格式的 if 语句 : if (expression) statement : 当 expression 为 truthy 时,执行 statement. if (expression) statement1 else statement2 : 当 expression 为 truthy 时,执行 statement1. 否则,执行 statement2 if ... else if ... else statementN

vue中进行判断不同字段的判断,主要是区分于微信小程序和网页版之间写法

网页版的vue字段的判断的写法如下: v-if="item.scoreItemState == 0" v-if="item.scoreItemState == 1" 微信小程序中的vue字段的判断的写法 注意:一定要带双花括号{{}} wx:if="{{item.scoreItemState == 0}}" wx:if="{{item.scoreItemState == 1}}"   原文地址:https://www.cnbl

判断微信、微信小程序及其他环境

判断是否为微信.微信小程序.其他环境 研究背景 项目中有一个需求,在判断用户未登录的情况下跳转登录,toLogin通过window.location.href进行跳转登录.在线上环境中,发现在未登录的情况下,Iphone 小程序中偶尔跳转失效.定位代码发现判断小程序函数返回结果在跳转逻辑之后才获得结果,猜测由于判断环境代码打断跳转的进行.临时方案:跳转后通过setTimeout再进行一次跳转. 目前解决方案如下: toLogin() { if(isMiniApp() === null) { se

微信小程序判断input是否为空

微信小程序中用到input值时候,判断其内容是否为空,可以用if-else判断内容的length,也可以给input加点击事件,判断其内容:以下是我解决问题的过程wxml代码 <view class="name"> <text>姓名</text> <input type='text' placeholder='收货人姓名' value="{{userName}}" bindblur='username'></in

微信小程序实例:分享给一个人还是分享到群的判断代码

微信小程序的分享功能,在最新版库的ide上已经不能拿到分享回调了,官方api也删除了对应的回调函数,看样子是砍掉了,不过真机测试还是可以的,话不多说,上代码: /* // 分享功能回调 onLoad: function (options) { wx.showShareMenu({ //只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket . withShareTicket: true }); }, onShareAppMessage: funct