Javascript 展平深度嵌套的对象数组

Javascript 展平深度嵌套的对象数组,javascript,arrays,lodash,Javascript,Arrays,Lodash,我得到了以下数据结构,这是一个accounts对象数组,其中一些帐户是其子帐户的父帐户,而子帐户又可以是其他帐户的父帐户,等等: [{ “id”:“acc.1260446672222.11”, “类型”:“费用文件夹”, “名称”:“费用组”, “余额”:3418.11, “儿童”:[{ “id”:“acc.1260446672238.27”, “类型”:“费用”, “名称”:“广告、促销和娱乐账户”, “余额”:0, “儿童”:[] }, { “id”:“附件9a2492ba-0d82-4f4

我得到了以下数据结构,这是一个accounts对象数组,其中一些帐户是其子帐户的父帐户,而子帐户又可以是其他帐户的父帐户,等等:

[{
“id”:“acc.1260446672222.11”,
“类型”:“费用文件夹”,
“名称”:“费用组”,
“余额”:3418.11,
“儿童”:[{
“id”:“acc.1260446672238.27”,
“类型”:“费用”,
“名称”:“广告、促销和娱乐账户”,
“余额”:0,
“儿童”:[]
}, {
“id”:“附件9a2492ba-0d82-4f4a-a1b4-14868f1e1a39”,
“类型”:“费用文件夹”,
“名称”:“房产成本”,
“余额”:0,
“儿童”:[{
“id”:“acc.287ba5b6-5536-428b-950f-d71d2af73ccc”,
“类型”:“费用”,
“名称”:“家用燃气的使用”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“acc.7091ee15-3f02-4bd1-94e5-5918cf986969”,
“类型”:“费用”,
“名称”:“租用场地、工作室、教学室”,
“余额”:0,
“儿童”:[
]
}]
}, {
“id”:“acc.827ec446-edeb-4f2b-8032-d306292d2d83”,
“类型”:“费用文件夹”,
“名称”:“管理费用”,
“余额”:558.61,
“儿童”:[{
“id”:“acc.0ed5fc81-7734-4452-86a9-db22a6b0f8e8”,
“类型”:“费用”,
“名称”:“银行费用”,
“余额”:15,
“儿童”:[
]
}, {
“id”:“附件e2cdb2c0-8565-4991-a35a-d4596b0ddf45”,
“类型”:“费用”,
“名称”:“软件和计算机外围设备”,
“余额”:417.13,
“儿童”:[
]
}, {
“id”:“附件96d5d00e-43f4-4d3a-b97b-fdf258c65514”,
“类型”:“费用”,
“名称”:“打印、复印等”,
“余额”:55.93,
“儿童”:[
]
}, {
“id”:“附件494dd64a-4fb3-42b8-be3e-8f3b59a2ef59”,
“类型”:“费用”,
“名称”:“艺术家管理服务”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“acc.1260446672238.35”,
“类型”:“费用”,
“名称”:“文具”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“附件96d89d0d-5465-488b-b37f-d41ca114c5e6”,
“类型”:“费用”,
“名称”:“移动电话”,
“余额”:41.19,
“儿童”:[
]
}, {
“id”:“acc.1260446672238.33”,
“类型”:“费用”,
“姓名”:“家庭电话”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“acc.1260446672238.38”,
“类型”:“费用”,
“名称”:“邮资/邮递”,
“余额”:29.36,
“儿童”:[
]
}]
}, {
“id”:“附件b9c9bbc7-43df-472e-9ac8-c7c76f08f49a”,
“类型”:“费用文件夹”,
“名称”:“仪器、设备维护等”,
“余额”:1002.48,
“儿童”:[{
“id”:“acc.1260446672238.32”,
“类型”:“其他费用”,
“名称”:“仪器保险”,
“余额”:157.48,
“儿童”:[
]
}, {
“id”:“附件2a1cca15-2868-4770-a3e7-d43a6268c6a1”,
“类型”:“费用”,
“名称”:“仪器维修和维护”,
“余额”:845,
“儿童”:[
]
}, {
“id”:“附件a908aee0-84fb-450a-916b-4cec25265aef”,
“类型”:“费用”,
“名称”:“附件和更换件”,
“余额”:0,
“儿童”:[
]
}]
}, {
“id”:“附件a42cdd86-0d9e-4f3f-af0d-7c4525374731”,
“类型”:“费用文件夹”,
“名称”:“机动车辆”,
“余额”:0,
“儿童”:[{
“id”:“根据cb325e7e-0ce4-4c78-9cb4-20659df733a6”,
“类型”:“费用”,
“名称”:“燃料和油”,
“余额”:0,
“儿童”:[
]
}]
}, {
“id”:“附件4bdd9e26-ce64-4e7f-b46a-82EC9DE06D”,
“类型”:“费用文件夹”,
“姓名”:“其他旅行”,
“余额”:132.1,
“儿童”:[{
“id”:“acc.77dd2142-f2de-4a2c-9247-061d0661bc0a”,
“类型”:“费用”,
“名称”:“出租车”,
“余额”:24.5,
“儿童”:[
]
}, {
“id”:“附件2b54abdd-7ef5-43cd-bdb9-c8c981b59ff2”,
“类型”:“费用”,
“名称”:“公共交通”,
“余额”:107.6,
“儿童”:[
]
}]
}, {
“id”:“附件e4695b70-31fa-4e23-afd0-97335dcd5b9e”,
“类型”:“费用”,
“名称”:“子公司”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“acc.02d222bf-4dff-4308-afe9-69b93f412ada”,
“类型”:“费用”,
“名称”:“酒店和住宿”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“根据d61cd5b4-2c80-4ab8-93d0-9d5726bd253b”,
“类型”:“费用文件夹”,
“名称”:“已支付的费用和佣金”,
“余额”:0,
“儿童”:[{
“id”:“acc.1262189019758.7”,
“类型”:“费用”,
“姓名”:“学生考试报名费”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“根据a7d7efd3-d0da-4704-babb-079b6077f3fe”,
“类型”:“费用”,
“姓名”:“试镜、比赛报名费”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“附件3b91ee4e-40a8-46d8-aa05-3afa5974b3ef”,
“类型”:“费用”,
“姓名”:“副手,其他音乐家”,
“余额”:0,
“儿童”:[
]
}]
}, {
“id”:“acc.250d6872-6023-4599-a0b6-b7159eebbfa1”,
“类型”:“费用文件夹”,
“名称”:“其他专业费用”,
“余额”:1739.42,
“儿童”:[{
“id”:“附件b7315228-f85a-4ffb-9199-d1128a409e5f”,
“类型”:“费用”,
“名称”:“推广与宣传”,
“余额”:138.6,
“儿童”:[
]
}, {
“id”:“附件69ca2005-d7a0-448b-b70c-dafb128a48ae”,
“类型”:“费用”,
“名称”:“其他费用”,
“余额”:364.5,
“儿童”:[
]
}, {
“id”:“附件dcd999d2-4e18-41be-b9cc-218d4034b88e”,
“类型”:“费用”,
“名称”:“办公设备、家具”,
“余额”:0,
“儿童”:[
]
}, {
“id”:“acc.e0460706-d5c9-4c40-9d1e-0d2058864b92”,
“类型”:“费用”,
“名称”:“CD、道具等”,
“平衡
function flatten(into, node){
    if(node == null) return into;
    if(Array.isArray(node)) return node.reduce(flatten, into);
    into.push(node);
    return flatten(into, node.children);
}

var out = flatten([], yourArray);