收藏
回答

循环两个数组的问题?

data: {a:[4],b:[1,2,3,], },

ps:function(e){

var c=this.data.a

c.push(e.currentTarget.dataset.shuzi)

this.setData({

a:c

})

},

视图层显示的

想点击1标红,再点2,2也标红,我的思路是:弄一个空数组(data中的a)点击那个数字,将点击的数字添加到空数组中,再在视图层遍历两个数组,两个数组中的数字相等就标红,可是为什么点击后会多循环一次(第一次循环是123,点击后是123123,再点就是123123123)?实在想不懂


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

3 个回答

  • i
W
    i W
    2020-01-02

    其实把数组改成这样的话,就简单很多

    a:[{

    value:1,

    isChecked:false

    },

    value:2,

    isChecked:false

    ]

    点击的时候,就把那个的isChecked改成true,就好了

    2020-01-02
    有用
    回复 2
    • 是谁的心鸭
      是谁的心鸭
      2020-01-02
      刚刚有了这个思路, /大哭,
      2020-01-02
      回复
    • i
W
      i W
      2020-01-02回复是谁的心鸭
      /偷笑
      2020-01-02
      回复
  • 袁康
    袁康
    2020-01-02

    你这最外层循环的a,你点击b的时候push到a数组中了,a数组增加所以多循环一次

    2020-01-02
    有用
    回复
  • 子不语
    子不语
    2020-01-02

    因为你写的是双循环……

    2020-01-02
    有用
    回复 3
    • 是谁的心鸭
      是谁的心鸭
      2020-01-02
      想问下,写这种点击多个显示,可以给个思路吗大哥
      2020-01-02
      回复
    • 是谁的心鸭
      是谁的心鸭
      2020-01-02
      我知道了,空数组,点一次添加一个就会在循环一次,明白了,那这种需求给个思路呗,哥
      2020-01-02
      回复
    • 子不语
      子不语
      2020-01-02回复是谁的心鸭
      wx:if="{{ a.includes(aa) }}"。把最外层的循环去掉就好
      2020-01-02
      回复
登录 后发表内容
问题标签