簡體   English   中英

遍歷嵌套對象數組以收集缺少屬性的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM