Javascript 如何添加子对象的值并将其推送到相应的父对象

Javascript 如何添加子对象的值并将其推送到相应的父对象,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有一个json结构,如下所示 [{“姓名”:“明普尔”,“儿童”:[{ “名称”:“ppp1”, “儿童”:[{ “名称”:“馈线”, “儿童”:[{ “名称”:“rmu16”, “儿童”:[{ “名称”:“invt16”, “儿童”:[{ “aname”:“inv 01”, “价值”:300 }, { “aname”:“inv 03”, “价值”:500 }] }] }] }]}]}] 我想添加children对象的值并推送到相应的父对象 如下 [{“name”:“minpur”,“valu

我有一个json结构,如下所示

[{“姓名”:“明普尔”,“儿童”:[{ “名称”:“ppp1”, “儿童”:[{ “名称”:“馈线”, “儿童”:[{ “名称”:“rmu16”, “儿童”:[{ “名称”:“invt16”, “儿童”:[{ “aname”:“inv 01”, “价值”:300 }, { “aname”:“inv 03”, “价值”:500 }] }] }] }]}]}]

我想添加children对象的值并推送到相应的父对象 如下

[{“name”:“minpur”,“value”:800,“children”:[{“name”:“ppp1”, “value”:800,“children”:[{“name”:“feeder”,“value”:800, “儿童”:[{ “名称”:“rmu16”, “价值”:800, “儿童”:[{ “名称”:“invt16”, “价值”:800, “儿童”:[{ “aname”:“inv 01”, “价值”:300 }, { “aname”:“inv 03”, “价值”:500 }] }]}]}]}]}]}]


您可以创建一个递归函数来迭代子函数,并根据子函数添加值,等等

注意:示例中的
属性出现在
子属性之后

const fn=arr=>arr.map(o=>{
如果(!o.children)返回o
const children=fn(o.children)
const value=(o.value | | 0)+children.reduce((r,{value})=>r+value,0)
返回{
……哦,
价值
儿童
}
})
const data=[{“name”:“minpur”,“children”:[{“name”:“ppp1”,“children”:[{“name”:“feeder”,“children”:[{“name”:“rmu16”,“children”:[{“name”:“invt16”,“children”:[{“aname”:“inv 01”,“value”:300},{“aname”:“inv 03”,“value”:500}]}]}]
常数结果=fn(数据)
console.log(结果)