Javascript 如何过滤JS中对象具有属性tagId或keywordId的对象数组?
我有一个对象数组,我试图通过检查对象是否具有属性tagId或keywordId来过滤它。我考虑过这个问题,但不确定这是否正确Javascript 如何过滤JS中对象具有属性tagId或keywordId的对象数组?,javascript,arrays,ecmascript-6,javascript-objects,ecmascript-5,Javascript,Arrays,Ecmascript 6,Javascript Objects,Ecmascript 5,我有一个对象数组,我试图通过检查对象是否具有属性tagId或keywordId来过滤它。我考虑过这个问题,但不确定这是否正确 const filteredProducts = products.filter(product => product.tagId !== undefined || product.keywordId !== undefined) 是否有更好的方法来实现上述解释的结果并获得包含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(“关键字id”))
是的,是打字错误。。。