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

从For循环中删除重复项

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

    如何从for循环中删除重复项?

    我假设通过一个计算函数,或者有什么东西我可以简单地添加到下面的循环中,只输出数据中的重复项。

     <div v-for="(item, index) in info" :key="index" class="form-check">
        <div v-for="(cat, index) in item.category_data" :key="index">
            <input type="checkbox" class="form-check-input" v-model="cat_data" :id="index" :value="index">
            <label class="form-check-label">{{ cat }}</label>
        </div>
    </div>
    

    : https://codepen.io/anon/pen/XxNORW?editors=1010

    谢谢

    2 回复  |  直到 7 年前
        1
  •  1
  •   Timothy Lee    7 年前

    我认为有很多方法可以实现“从For循环中删除重复项”

    举个例子:

    remove_category_duplicates: function () {
        // Get all categories and remove duplicates
        let data = {}
        this.info.forEach(i=>{
            Object.assign(data,i.category_data)
        })
        return data;
     }
    

    codepen

        2
  •  1
  •   GWed    7 年前

    因此,我建议您使用过滤器返回一个删除了重复项的数组。

    标记

     <div v-for="(filteredArray(arr), index) in info" :key="index" class="form-check">
       ...
    </div>
    

    脚本

    将筛选属性添加到vue.js实例。

    filters: {
      filteredArray: function (array) {
        let data = {}
        this.info.forEach(i=>{
          Object.assign(data,i.category_data)
         })
        return data;
      }
    }