问题描述
我有一个对象数组,我试图通过检查对象是否具有属性tagId或keywordId对其进行过滤。我考虑过,但是不确定是否正确。
const filteredProducts = products.filter(product => product.tagId !== undefined || product.keywordId !== undefined)
是否有更好的方法来获得上述结果并获得包含tagId或keywordid的对象的过滤数组?
解决方法
您基本上是在手动创建对象原型中已经作为hasOwnProperty()
存在的比较
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)))
,
您可以在产品对象上使用hasOwnProperty
。
像这样-
const filteredProducts = products.filter(product => product.hasOwnProperty("tagId") || product.hasOwnProperty('keywordId"))