I have an array of objects and I am trying to filter it by checking if the object has property tagId or keywordId. I thought about this but not sure if it's the correct way.
const filteredProducts = products.filter(product => product.tagId !== undefined || product.keywordId !== undefined)
Is there better way to achieve the above-explained result and get a filtered array of objects which include either tagId or keywordid?
You are basically manually creating comparisons that already exist as hasOwnProperty()
in object prototype
const filteredProducts =
products.filter(product => product.hasOwnProperty('tagId') || product.product.hasOwnProperty('keywordId'))
//Or using `Array#some()`
const filteredProducts =
products.filter(product => ['tagId','keywordId']
.some(prop => product.hasOwnProperty(prop)))