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

有这样一组数据

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

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

已解决 悬赏分:20 - 解决时间 2021-11-26 20:37
反对 0举报 0 收藏 0

回答5

最佳
  • @

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

    支持 0 反对 0 举报
    2021-11-26 04:27
  • @

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

    支持 0 反对 0 举报
    2021-11-26 05:39
  • @
    {
      computed: {
        bset() {
          return new Set(this.b)
        }
      }
    }

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

    支持 0 反对 0 举报
    2021-11-26 07:16
  • @

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

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

    大致就是这样

    支持 0 反对 0 举报
    2021-11-26 08:43
  • @

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

    支持 0 反对 0 举报
    2021-11-26 09:43