根据父对象是否已在数组中过滤对象数组

时间:2018-10-27 16:44:21

标签: javascript arrays typescript

可以说我有一个看起来像这样的对象数组。

let example = [
      {
        data: { id: 1, group: 200, name: "Artist" },
        children: [{
          data: { id: 2, group: 201, name: "Album" },
          children:[{ 
            data: { id: 3, group: 202, name: "Song" },
            children: [],
            parentId: 2
          }],
          parentId: 1
        }],
        parentId: null
      },
      {
        data: { id: 2, group: 201, name: "Album" },
        children:[{ 
            data: { id: 3, group: 202, name: "Song" },
            children: [],
            parentId: 2
         }],
         parentId: 1
      },
      {
        data: { id: 3, group: 202, name: "Song" },
        children: [],
        parentId: 2
      }
    ];

现在我想过滤该数组,所以它看起来像这样:

      [{
        data: { id: 1, group: 200, name: "Artist" },
        children: [{
          data: { id: 2, group: 201, name: "Album" },
          children:[{ 
            data: { id: 3, group: 202, name: "Song" },
            children: [],
            parentId: 2
          }],
          parentId: 1
        }],
        parentId: null
      }]

编辑:

应根据父对象是否已在数组中进行过滤。 这包括如果父对象作为另一个对象的子对象位于数组内部。

例如:如果“相册”的父项在数组中,则从数组等中删除“相册”。

这是我尝试过的:

FIDDLE

我不知道如何检查父对象是否是另一个对象的孩子。

我该怎么做?

0 个答案:

没有答案