[英]Iterate through an array of nested objects to collect objects that lack a property
只要children
鍵中有值,我就需要遍歷對象數組。
數組中的每個 object 都有一個單獨的children
數組,我需要檢查每個對象中是否存在timeGroupName
。
最后,如果任何對象中缺少timeGroupName
,則返回一些內容以指示timeGroupName
不存在。 我想在這里使用遞歸。
樣品 Object:
[
{
name: "test",
timeGroupName: "NupurGroup",
type: "node",
id: 1592208617196,
children: [
{
name: "sid",
timeGroupName: "NupurGroup",
type: "node",
id: 1592210050837,
children: [
{
name: "rush",
timeGroupName: "NupurGroup",
type: "node",
id: 1592210076303,
children: []
},
{
name: "1",
timeGroupName: "NupurGroup",
type: "store",
storeId: "5c46e5fde6d3c2293e1f53b6",
id: 1592210057381,
children: []
}
],
collapsedStore: false,
collapsedGroup: false
}
],
collapsedGroup: false
}
];
您可以使用此遞歸 function:
const findMissing = data => (data || []).flatMap(item =>
("timeGroupName" in item ? [] : [item.id]).concat(findMissing(item.children))
);
這將返回一個數組,其中包含所有沒有“timeGroupName”屬性的對象的 id 值。 在您的示例中,所有對象都有它,因此上面的 function 將為它返回[]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.