为了账号安全,请及时绑定邮箱和手机立即绑定

如何递归地将一个数据集转换为另一个数据集?

如何递归地将一个数据集转换为另一个数据集?

噜噜哒 2023-08-18 14:11:47
给出以下数据,这些数据是我从 api 获取的,并且偶尔会被修改const data = [  {    name: "BG",    latest: false,    dir: true,    etag: null,    objectName: "BG",    size: 0,    lastModified: null,    storageClass: null,    versionId: null,    childItems: [      {        etag: '"13dda89d102a62beb58c57a9477b252c"',        objectName: "BG/item.xml",        size: 12763,        lastModified: "2020-11-17T13:13:34.735Z",        storageClass: "STANDARD",        versionId: null,        childItems: null,        name: "item.xml",        latest: false,        dir: false,      },      {        etag: '"5baf1d6bcccc266bfc76cbe36724bd99"',        objectName: "BG/item.xml",        size: 17856,        lastModified: "2020-11-17T13:13:25.796Z",        storageClass: "STANDARD",        versionId: null,        childItems: null,        name: "item.xml",        latest: false,        dir: false,      },    ],  },  {    name: "OTHER",    latest: false,    dir: true,    etag: null,    objectName: "OTHER",    size: 0,    lastModified: null,    storageClass: null,    versionId: null,    childItems: [      {        etag: '"ab37611f0b217b71804da19d9111bddd"',        objectName: "OTHER/item.xml",        size: 3953,        lastModified: "2020-11-18T09:12:25.634Z",        storageClass: "STANDARD",        versionId: null,        childItems: null,        name: "item.xml",        latest: false,        dir: false,      },      {        name: "MORE",        latest: false,        dir: true,        etag: null,        objectName: "OTHER/MORE/",        size: 0,        lastModified: null,        storageClass: null,        versionId: null,          },判断标准是,当dir一个对象的属性为true时,获取name并赋值给属性label中的子属性,获取和属性childItem的值nameobjectName对我来说推理是一项艰巨的任务,我提前感谢您的帮助
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

迭代数据项。对于每件物品,获取标签并检查dir;如果true,则递归处理子级,否则获取数据。


const processItems = items => items.map(item => {

    const results = {

      label: item.name,

    };

    if(item.dir) {

      results.children = processItems(item.childItems);

    }

    else {

      results.data = item.objectName;

    }

    return results;

};


const results = processItems(data);


查看完整回答
反对 回复 2023-08-18
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信