当前位置: 首页 > 知识库问答 >
问题:

在VueJS中从v-for中删除重复元素

钮巴英
2023-03-14

我使用下面的代码来显示数组中的类别。数组可能包含重复的类别。有什么办法我只能选择独特的元素在VUEJS?

<li v-for="product in products">
{{product.category}}
</li>

数组:

products: [
      { id: '1', title: 'Test 1', category: 'Test 3' },
      { id: '2', title: 'Test 2', category: 'Test 1' },
      { id: '3', title: 'Test 3', category: 'Test 2' },
      { id: '3', title: 'Test 4', category: 'Test 1' },
      { id: '5', title: 'Test 5', category: 'Test 3' }
    ]

共有1个答案

穆博简
2023-03-14

可以使用所需的唯一值创建计算属性。如果在项目中包含Lodash,请尝试_.uniq

import uniq from 'lodash/uniq'
// ...snip

computed: {
  productCategories () {
    return uniq(this.products.map(({ category }) => category))
  }
}

在模板中

<li v-for="category in productCategories">
  {{category}}
</li>

如果您不喜欢引入Lodash(或其他实用程序库),可以通过实现同样的目的

productCategories () {
  return [...new Set(this.products.map(({ category }) => category))]
}

注意:我已经将转换为数组,因为Vue.js似乎无法迭代(或任何其他迭代器)。

 类似资料:
  • 问题内容: 如今,在Swift中,您只需键入 以使数组唯一。(或根据需要订购)。 在此之前,它是怎么做的? 我可能有一个如下所示的数组: 或者,实际上,是数据的相似类型部分的任何序列。我要做的是确保每个相同元素中只有一个。例如,上面的数组将变为: 请注意,删除了2、6和15的重复项以确保每个相同元素中只有一个。Swift是否提供一种轻松实现此目的的方法,还是我必须自己做? 问题答案: 您可以自己滚

  • 问题内容: 因此,如果我尝试在迭代时从Java HashSet中 删除元素,则会收到 ConcurrentModificationException 。如下例所示,从 HashSet中 删除元素子集的最佳方法是什么? 这是一个解决方案,但我认为它不是很优雅: 谢谢! 问题答案: 您可以手动遍历集合的元素: 您通常会使用循环而不是循环来查看此模式: 正如人们指出的那样,使用循环是优选的,因为这样可以

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 统计一个一维数组中的各个元素的个数,然后删除多出来的重复元素,并输出结果。 例如:[1,2,2,2,3,3,3,3,3]—>[1,2,3] 解决思路 将重复元素的列表中的重复元素进行统计,并将统计结果放在dictionary中,key为元素,value为该元素的个数 更新此步方法:上述步骤的功能,能够通过另外一个方法实现,即collections.Counter() 然后通过for获取key,得到

  • 我有一个具有重复值的地图: 我想在地图上有 你知道如何去掉重复的值吗? 目前,我收到'java.util.ConcurrentModificationException'错误。 谢谢。

  • 问题内容: Google Python类| 清单练习- 给定一个数字列表,返回一个列表,其中所有相邻的==元素都已简化为单个元素,因此[1、2、2、3]返回[1、2、3]。您可以创建一个新列表或修改传入的列表。 我使用新列表的解决方案是- 问题甚至暗示可以通过修改传入列表来完成。但是,python文档警告不要在使用for循环迭代列表时修改元素。 我想知道除了遍历列表之外还能做些什么呢?我不是在寻找