关于求a中是否包含b中数据的问题,

有这样一组数据

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

用什么方法可以判断出a中的id包含b中的数据
因为需要用v-for遍历 展示出1234,如果b里有的 则不展示

阅读 3.3k
5 个回答

取相同: a.filter(v => b.includes(v.id))
取不同: a.filter(v => !b.includes(v.id))

循环a 每项加个状态 a[i].status=true
里面判断 b.indexOf(a[i].id)>-1 true说明b中存在 a[i].status=false
v-for循环根据status 展示

{
  computed: {
    bset() {
      return new Set(this.b)
    }
  }
}

判断时 v-if="bset.has(aitem.id)"

对a进行v-for循环的时候判断一下每一项的id是否包含在b中
比如

<div v-for='item in a' :key='item.id' v-if='!b.includes(item.id)'></div>

大致就是这样

计算属性+filter处理. 参照 @Evil 的就好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题