首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范嵌套项的规范化

规范嵌套项的规范化
EN

Stack Overflow用户
提问于 2021-02-19 18:51:00
回答 1查看 129关注 0票数 0

我有一个类似于这个的数据数组

代码语言:javascript
复制
[
  {
    "id": "root_01",
    "parents": [
      {
        "id": "parent_1",
        "childrens": [
          {
            "id": "child_01",
            "name": "ABC",
            "group": "group_a"
          },
          {
            "id": "child_02",
            "name": "BBC",
            "group": "group_b"
          }
        ]
      },
      {
        "id": "parent_2",
        "childrens": [
          {
            "id": "child_03",
            "name": "CCD",
            "group": "group_a"
          },
          {
            "id": "child_04",
            "name": "EEF",
            "group": "group_c"
          }
        ]
      }
    ]
  },
  {} // same as previous
]

我正在努力摆脱所有的父母数据&捕捉和合并独生子女项目,像这样:

代码语言:javascript
复制
[
  {
    "id": "child_01",
    "name": "ABC",
    "group": "group_a"
  },
  {
    "id": "child_02",
    "name": "BBC",
    "group": "group_b"
  },
  {
    "id": "child_03",
    "name": "CCD",
    "group": "group_a"
  },
  {
    "id": "child_04",
    "name": "EEF",
    "group": "group_c"
  }
]

但是在阅读了normalizr文档之后,我有点困惑,因为我找不到这样的例子,所以有人能建议我是否可以使用正常化或其他更好的方法吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 18:57:52

Recusrion是您在这里需要的:

代码语言:javascript
复制
const arr = [ { "id": "root_01", "parents": [ { "id": "parent_1", "childrens": [ { "id": "child_01", "name": "ABC", "group": "group_a" }, { "id": "child_02", "name": "BBC", "group": "group_b" } ] }, { "id": "parent_2", "childrens": [ { "id": "child_03", "name": "CCD", "group": "group_a" }, { "id": "child_04", "name": "EEF", "group": "group_c" } ] } ] }];

const flatten = arr => arr.flatMap(o=>o.parents ? flatten(o.parents) : o.childrens ? flatten(o.childrens) : o);

console.log(flatten(arr));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66283413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档