代码之家  ›  专栏  ›  技术社区  ›  wbdlc

VueJS-从复选框选择中筛选项目

  •  0
  • wbdlc  · 技术社区  · 7 年前

    cat\U阵列 ? 同时保留我的文本搜索过滤器?

        {
        "id": 1,
        "title": "Title one",
        "category_data": {
            "2": "Team",
            "7": "Queries"
        }
    },
    

    我用这个测试过:

    return  vm.info.filter(item => this.cat_array.includes(item.category_id))
    

    代码笔示例 https://codepen.io/anon/pen/XxNORW?editors=1011

    谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   akuiper    7 年前

    一种方法-( 没有照顾好孩子 All 逻辑 ):

    this.info.filter(
      item => Object.values(item.category_data).some(
        cat => this.cat_array.includes(cat))
    )
    

    var info = [
        {
            "id": 1,
            "title": "Title one",
            "category_data": {
                "2": "Team",
                "7": "Queries"
            }
        },
        {
            "id": 2,
            "title": "Title two",
            "category_data": {
                "2": "Team",
                "7": "Queries"
            }
        },
        {
            "id": 3,
            "title": "Title three",
            "category_data": {
                "2": "Team",
                "7": "Queries"
            }
        },
        {
            "id": 4,
            "title": "Title four",
            "category_data": {
                "2": "Team",
                "7": "Queries"
            }
        },
        {
            "id": 5,
            "title": "Title five",
            "category_data": {
                "2": "Team",
                "6": "Questions",
                "7": "Queries"
            }
        },
        {
            "id": 6,
            "title": "Title six",
            "category_data": {
                "2": "Team",
                "6": "Questions",
                "7": "Queries",
                "12": "Fax",
            }
        }
    ]
    
    var cat_array = ["Questions"]
    
    console.log(
      info.filter(
        item => Object.values(item.category_data).some(
          cat => cat_array.includes(cat)
        )
      )
    )