I'm using the following code to display categories from an array. The array may contain duplicate categories. Is there any way I can only select unique elements in VueJS?
<li v-for="product in products">
{{product.category}}
</li>
Array:
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' }
]
You can create a computed property with the unique values you want. If you include Lodash in your project, try
_.uniq
and in your template
If you're not keen on introducing Lodash (or other utility libraries), the same can be achieved with a
Set
Note: I've converted the
Set
to an array as Vue.js doesn't seem able to iterate theSet
(or any otherIterator
).You can create a computed property:
uniqProducts
which will return unique array for yourproducts
, you will need to make following changes:HTML
in vue instance you have to write a computed property which can use any technique (many listed here) to get uniq array.
_
here can be lodash or underscore.