javascript - 我有一个数组,我想将其更改为包含最后一个子元素的新数组

标签 javascript arrays dynamic

这是我的数组,我想将其更改为包含最后一个子项目的平面数组,我的意思是数组的最深项目(对象中的最后一个员工)
例如,在这个对象中,“last child 3”是我的答案。 { “id”:“089743ff-3b6b-4e99-8908-2535af8cd056”, “姓名”:“ child 3”, “parentId”:“67bce1a9-2354-4d0f-a788-79c9f4ac1a59”, “雇员”: [ { “id”:“00bba30e-788b-4c0f-812b-38dc15bfa91b”, "name": "最后一个 child 3", "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056", “雇员”: [] } ] },

动态地通过js代码我的意思是那些项目

employees.length === 0

我想将新数组放入面板,并且我需要这个新数组。 我从 API 获取此信息,我想更改它

  [
      {
        "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
        "name": "last child 3",
        "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
        "employees": []
      },
      {
        "id": "089743ff-3b6b-4e99-8908-2535af8cd056",
        "name": "child 3",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": [
          {
            "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
            "name": "last child 3",
            "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
            "employees": []
          }
        ]
      },
      {
        "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
        "name": "last child4",
        "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
        "employees": []
      },
      {
        "id": "54cc976f-cfa6-4397-8c49-065001b35037",
        "name": "last child 2",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": []
      },
      {
        "id": "6496d673-6260-4751-b942-91b9fb1411f6",
        "name": "bbb",
        "parentId": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
        "employees": [
          {
            "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
            "name": "last child4",
            "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
            "employees": []
          }
        ]
      },
      {
        "id": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "name": "with child",
        "parentId": "",
        "employees": [
          {
            "id": "089743ff-3b6b-4e99-8908-2535af8cd056",
            "name": "child 3",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": [
              {
                "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
                "name": "last child 3",
                "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
                "employees": []
              }
            ]
          },
          {
            "id": "54cc976f-cfa6-4397-8c49-065001b35037",
            "name": "last child 2",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": []
          },
          {
            "id": "9ce5b48f-c978-4214-9c7e-aa34f8852457",
            "name": "last child 1",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": []
          }
        ]
      },
      {
        "id": "9ce5b48f-c978-4214-9c7e-aa34f8852457",
        "name": "last child 1",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": []
      },
      {
        "id": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
        "name": "aaa",
        "parentId": "",
        "employees": [
          {
            "id": "6496d673-6260-4751-b942-91b9fb1411f6",
            "name": "bbb",
            "parentId": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
            "employees": [
              {
                "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
                "name": "last child4",
                "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
                "employees": []
              }
            ]
          }
        ]
      }
    ]

** 我想用 javascript 代码将此数组更改为平面数组**

  [
       {
         "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
         "name": "last child 3",
         "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
         "employees": []
       },{
         "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
         "name": "last child 3",
         "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
         "employees": []
       },
       
       {
         "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
         "name": "last child4",
         "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
         "employees": []
       },
      {
         "id": "54cc976f-cfa6-4397-8c49-065001b35037",
         "name": "last child 2",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
         "employees": []
       },{
         "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
         "name": "last child 3",
         "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
         "employees": []
       },
       {
         "id": "54cc976f-cfa6-4397-8c49-065001b35037",
         "name": "last child 2",
         "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
         "employees": []
       },
       {
         "id": "9ce5b48f-c978-4214-9c7e-aa34f8852457",
         "name": "last child 1",
         "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
         "employees": []
       },{
         "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
        "name": "last child4",
         "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
        "employees": []
      }
     ]

感谢您的帮助

最佳答案

如果我找到你了,你需要在平面数组中没有任何员工的所有对象

let data= [
      {
        "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
        "name": "last child 3",
        "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
        "employees": []
      },
      {
        "id": "089743ff-3b6b-4e99-8908-2535af8cd056",
        "name": "child 3",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": [
          {
            "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
            "name": "last child 3",
            "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
            "employees": []
          }
        ]
      },
      {
        "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
        "name": "last child4",
        "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
        "employees": []
      },
      {
        "id": "54cc976f-cfa6-4397-8c49-065001b35037",
        "name": "last child 2",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": []
      },
      {
        "id": "6496d673-6260-4751-b942-91b9fb1411f6",
        "name": "bbb",
        "parentId": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
        "employees": [
          {
            "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
            "name": "last child4",
            "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
            "employees": []
          }
        ]
      },
      {
        "id": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "name": "with child",
        "parentId": "",
        "employees": [
          {
            "id": "089743ff-3b6b-4e99-8908-2535af8cd056",
            "name": "child 3",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": [
              {
                "id": "00bba30e-788b-4c0f-812b-38dc15bfa91b",
                "name": "last child 3",
                "parentId": "089743ff-3b6b-4e99-8908-2535af8cd056",
                "employees": []
              }
            ]
          },
          {
            "id": "54cc976f-cfa6-4397-8c49-065001b35037",
            "name": "last child 2",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": []
          },
          {
            "id": "9ce5b48f-c978-4214-9c7e-aa34f8852457",
            "name": "last child 1",
            "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
            "employees": []
          }
        ]
      },
      {
        "id": "9ce5b48f-c978-4214-9c7e-aa34f8852457",
        "name": "last child 1",
        "parentId": "67bce1a9-2354-4d0f-a788-79c9f4ac1a59",
        "employees": []
      },
      {
        "id": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
        "name": "aaa",
        "parentId": "",
        "employees": [
          {
            "id": "6496d673-6260-4751-b942-91b9fb1411f6",
            "name": "bbb",
            "parentId": "bc6314fd-c2c7-4d25-94c1-f9e80ae0b44f",
            "employees": [
              {
                "id": "447b0eec-19b3-4dd9-9075-9fda9351e6d3",
                "name": "last child4",
                "parentId": "6496d673-6260-4751-b942-91b9fb1411f6",
                "employees": []
              }
            ]
          }
        ]
      }
    ]
    
      let arr = [];
  function mapLastChild(params) {
    params.map(param => {
      if (!param.employees.length) {
        arr.push(param);
      } else {
        mapLastChild(param.employees);
      }
    });
  }
  mapLastChild(data);
  console.log(arr);

关于javascript - 我有一个数组,我想将其更改为包含最后一个子元素的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696248/

相关文章:

javascript - 如何列出javascript对象的函数/方法? (甚至有可能吗?)

javascript - .addEventListener 不工作

javascript - 重定向到页面上的部分(ASP.NET MVC)

javascript - 即使禁用缓存,Chrome 也不会停止缓存脚本

java - 发送特定大小的数据时出现 BufferOverflowException

arrays - 从字典数组中删除重复的字典

javascript - forEach 中箭头函数内的三元运算符

actionscript-3 - 为 actionscript-3 中的 2d Flash 游戏优化我的动态背景引擎

jquery - 使用jquery隐藏动态添加的div

javascript - JSON 与动态编码