评论

js加法陷阱1

js加法陷阱

首先,感谢热心网友的指正,现在已经将代码调整。

这段代码运行结果是什么?

// index.wxml
 <picker aria-role="combobox" bindchange="bindPicker2Change" range="{{ruleArr}}">
    <view class="weui-select">{{ruleArr[ruleValue]}}</view>
 </picker>

// index.js
data: {
 ruleArr: ['规则1''规则2''规则3''规则4''规则5'],
 ruleValue1,
  ruleType1,
},
bindPicker2Change(e) {
    this.setData({
      ruleValue: e.detail.value,
    });
},

formSubmit(e) {
    const that = this;
    let obj = e.detail.value
    let rt = that.data.ruleValue + 1;
    // let rt = Number(that.data.ruleValue) + 1;
    console.log('a,',rt)
},

// 打印结果 a, 11 


结果是rt为11

是的,你没有看错,就是这个结果。

而你想要的结果是2。


你需要这样✍🏻

let rt = Number(that.data.ruleValue) + 1;



最后一次编辑于  2023-02-01  
点赞 0
收藏
评论

5 个评论

  • 九漏鱼
    九漏鱼
    2023-02-01

    2023-02-01
    赞同 1
    回复 5
    • eagle
      eagle
      发表于小程序端
      2023-02-01

      我这个例子的原场景,在前段有个选择框,选择了之后,然后再加1,因为数组索引默认0

      2023-02-01
      回复
    • eagle
      eagle
      发表于小程序端
      2023-02-01

      一会儿把我的原代码复制出来,你看看你环境是不是这个问题

      2023-02-01
      回复
    • 九漏鱼
      九漏鱼
      2023-02-02回复eagle
      that.data.ruleValue是字符串类型
      2023-02-02
      回复
    • eagle
      eagle
      发表于小程序端
      2023-02-02回复九漏鱼

      应该是重新赋值后转换为字符串类型,我在data中定义的数字类型

      2023-02-02
      回复
    • 九漏鱼
      九漏鱼
      2023-02-02回复eagle
      可能是了.你可以打印一下看看赋值前后的类型,以及获取的e.detail.value类型
      2023-02-02
      回复
  • 鲤子
    鲤子
    2023-02-06
    let rt = +that.data.ruleValue + 1;
    


    2023-02-06
    赞同
    回复
  • eagle
    eagle
    2023-02-01

    感谢热心网友的反馈,代码已经调整!

    2023-02-01
    赞同
    回复
  • 笑望长空
    笑望长空
    发表于小程序端
    2023-02-01

    以前的好像不是这样的

    2023-02-01
    赞同
    回复
  • 徐徐徐🍊
    徐徐徐🍊
    2023-02-01

    2023-02-01
    赞同
    回复 4
    • 笑望长空
      笑望长空
      发表于小程序端
      2023-02-01

      测试环境好像没有问题,真机看看

      2023-02-01
      回复
    • Lewis
      Lewis
      2023-02-01回复笑望长空
      什么手机
      2023-02-01
      回复
    • 笑望长空
      笑望长空
      发表于小程序端
      2023-02-04回复Lewis

      按作者给出的代码以前运行确实没有问题的,但现在应该是要求写的更为规范,需要做类型转换,我的小程序以前上线运行后还没问题,后来才发现的,更新后已经解决。

      2023-02-04
      回复
    • Lewis
      Lewis
      2023-02-06回复笑望长空
      组件的问题吧,不是js的问题
      2023-02-06
      回复
登录 后发表内容