![](/img/trans.png)
[英]I have sections which have a feelings property which is an array of objects. How to filter all feelings which are selected from all sections in array?
[英]I have an array of objects. I need to remove the row which doesn't have a particular property
const data=[{"NAME":"ABC","ID":"1","CATALOG":"PDC"},{"NAME":"DOT","ID":"88","CATALOG":"PDC"},{"NAME":"TIM","ID":"99","CATALOG":"PDC"},{"NAME":"TOM","ID":"19","CATALOG":"PDC"},{"NAME":"CAT","ID":"18"},{"NAME":"BAT","ID":"13"},{"NAME":"XYZ","ID":"12"},{"NAME":"PQR","ID":"11"}]
for(var i=0;i<data.length;i++)
{
if (data[i].hasOwnProperty('CATALOG'))
{
console.log(data[i].ID)
}
else
{
data.splice(i,1)
//delete(data[i])
}
}
console.log(data)
以上是我的代码,但结果不是预期的。 使用 splice 和使用 delete() 创建 undefined 代替没有属性 CATALOG 的对象时,将保留最后 2 行。
干得好
Array.filter() 文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
Object.keys() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Array.some() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
const data=[{"NAME":"ABC","ID":"1","CATALOG":"PDC"},{"NAME":"DOT","ID":"88","CATALOG":"PDC"},{"NAME":"TIM","ID":"99","CATALOG":"PDC"},{"NAME":"TOM","ID":"19","CATALOG":"PDC"},{"NAME":"CAT","ID":"18"},{"NAME":"BAT","ID":"13"},{"NAME":"XYZ","ID":"12"},{"NAME":"PQR","ID":"11"}] const newArray = data.filter(item => Object.keys(item).some(key => key === 'CATALOG')) console.log(newArray)
您可以使用Array.filter方法。 它创建一个数组,其中只有在回调函数中返回 true 的条目。
const data=[{"NAME":"ABC","ID":"1","CATALOG":"PDC"},{"NAME":"DOT","ID":"88","CATALOG":"PDC"},{"NAME":"TIM","ID":"99","CATALOG":"PDC"},{"NAME":"TOM","ID":"19","CATALOG":"PDC"},{"NAME":"CAT","ID":"18"},{"NAME":"BAT","ID":"13"},{"NAME":"XYZ","ID":"12"},{"NAME":"PQR","ID":"11"}] const dataFiltered = data.filter((object)=> object.hasOwnProperty('CATALOG')) console.log(dataFiltered)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.