收藏
回答

数组多重嵌套,如何修改某个属性的值?

如图,我想实现一个全选全部选,根据data中父元素的isFlag的状态,去改变子元素对应的状态,改怎么实现呢?我没法改变自元素对应的isFlag的属性值我想要使用递归做,但是改变不了对应的值

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

3 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-11-04

    你先把你的需求说清楚吧,好变态的对象

    1、第一级的siFlag为1,其所有子级的isFlag都变为1?

    2、其中一个子级的isFlag为0时,其父级的isFlag都变为0?


    2019-11-04
    有用
    回复 4
    • 晚风
      晚风
      2019-11-04
      大致是这样的:当我点击某一个元素的时候,它的isFlag属性变为1或者0,那么在该元素下的所有子元素的isFlag都跟父元素的isFlag相同(类似全选全不选)。
      如果我的最内一层的子集没有任何一个被选中,那么对应的父集(包括祖先父集)都将不会被选中,只要有一个子集被选中,则它的所有父集都会被选中
      2019-11-04
      回复
    • 晚风
      晚风
      2019-11-04
      2019-11-04
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-11-05回复晚风
      大致写了个代码片段
      https://developers.weixin.qq.com/s/EFnGtEmX74ck
      2019-11-05
      回复
    • 晚风
      晚风
      2019-11-05
      好的,谢谢
      2019-11-05
      回复
  • 刁_Kyle
    刁_Kyle
    2019-11-04

    你这嵌套也太深了。 递归完了,再this.setData({     list: newList })

    2019-11-04
    有用
    回复 1
    • 晚风
      晚风
      2019-11-04
      我试一下看看
      2019-11-04
      回复
  • 原点的原点
    原点的原点
    2019-11-04

    修改对应下标的数据就行

    2019-11-04
    有用
    回复 3
    • 晚风
      晚风
      2019-11-04
      我改了,console出来的数据的isFlag是改变了的,但是在AppData中查看数据却没有改变,是什么情况呢?也没有涉及到异步呢
      2019-11-04
      回复
    • 原点的原点
      原点的原点
      2019-11-05回复晚风
      data更新了么
      2019-11-05
      回复
    • 晚风
      晚风
      2019-11-05
      没有更新。
      我想问一下:
      如果我想修改data中嵌套数组中的某一个对象的里面的属性值,我到底该怎么去更改才是正确的方式呢?我使用item.xx =  xxx有时候也可以更改,但是有时候又更改不了。就比如说这个,我想循环遍历list数组,然后根据我传入的id去匹配到对应的item,然后更该isFlag,这个代码该怎么写呢(list数组在标题)
      2019-11-05
      回复
登录 后发表内容
问题标签