收藏
回答

forEach((v,i)=>i===数字有效变量无效?A:B)

forEach加三元运算符实现对数组中对象属性的改变:

onLoad: function (options) {

    const tabsIsActiveIndex=options.tabsIsActiveIndex;

    let tabs=this.data.tabs;

    tabs.forEach((v,i)=>i===tabsIsActiveIndex?v.isActive=true:v.isActive=false);

    this.setData({

      tabs

    })

  },

forEach((v,i)=>i===tabsIsActiveIndex?v.isActive=true:v.isActive=false)就不行,写forEach((v,i)=>i===1?v.isActive=true:v.isActive=false)就行,问题是这里tabsIsActiveIndex确实取到值了,比如为1。

回答关注问题邀请回答
收藏

1 个回答

  • PikaJohn
    PikaJohn
    2020-07-14

    写forEach((v,i)=>i==tabsIsActiveIndex?v.isActive=true:v.isActive=false)就行,为什么用==就行?

    2020-07-14
    有用
    回复 5
    • 卢霄霄
      卢霄霄
      2020-07-14
      估计 tabsIsActiveIndex是字符串 i是数字
      2020-07-14
      回复
    • PikaJohn
      PikaJohn
      2020-07-14回复卢霄霄
      url="/pages/collect/collect?tabsIsActiveIndex={{0}}";
      2020-07-14
      回复
    • 卢霄霄
      卢霄霄
      2020-07-14
      url传递的参数 数字 布尔值 都会变成字符串的
      2020-07-14
      回复
    • PikaJohn
      PikaJohn
      2020-07-14回复卢霄霄
      完全明白了,谢谢
      2020-07-14
      回复
    • 卢霄霄
      卢霄霄
      2020-07-14回复PikaJohn
      不客气
      2020-07-14
      回复
登录 后发表内容
问题标签