怎么递归循环出来把这里边的每一层都加上一个数组对于的第一层的索引进去?

新手上路,请多包涵

1-这里是原数组对象
{

"code": 1,
"data": [
    {
        "department_name": "xx公司",
        "child_list": [
            {
                "department_name": "销售部",
                "child_list": [
                    {
                        "amount": 10000.0,
                        "employee_name": "yq"
                    }
                ]
            },
            {
                "department_name": "商务部",
                "child_list": [
                    {
                        "amount": 2200.0,
                        "employee_name": "yq"
                    }
                ]
               
            }
        ]
    },
    {
        "department_name": "FF公司",
        "child_list": [
            {
                "department_name": "销售部",
                "child_list": [
                    {
                        "amount": 10000.0,
                        "employee_name": "张琪"
                    }
                ]
            },
            {
                "department_name": "商务部",
                "child_list": [
                    {
                        "amount": 2200.0,
                        "employee_name": "李浩"
                    }
                ]
               
            }
        ]
    }
],
"msg": "操作成功"

}
2-怎么递归循环出来把这里边的每一层都加上一个数组对于的第一层的索引进去
{

"code": 1,
"data": [
    {
        "department_name": "xx公司",
        "userCode":"1",
        "child_list": [
            {
                "department_name": "销售部",
                "userCode":"1",
                "child_list": [
                    {
                        "amount": 10000.0,
                        "employee_name": "yq"
                        "userCode":"1"
                    }
                ]
            },
            {
                "department_name": "商务部",
                "userCode":"1",
                "child_list": [
                    {
                        "amount": 2200.0,
                        "employee_name": "yq",
                        "userCode":"1"
                    }
                ]
               
            }
        ]
    },
    {
        "department_name": "FF公司",
        "userCode":"2"
        "child_list": [
            {
                "department_name": "销售部",
                "userCode":"2"
                "child_list": [
                    {
                        "amount": 10000.0,
                        "userCode":"2",
                        "employee_name": "张琪"
                    }
                ]
            },
            {
                "department_name": "商务部",
                "userCode":"2",
                "child_list": [
                    {
                        "amount": 2200.0,
                        "employee_name": "李浩",
                        "userCode":"2"~~~~
                    }
                ]
               
            }
        ]
    }
],
"msg": "操作成功"

}
希望大家帮帮忙?

阅读 2.5k
3 个回答
function setData (list, code) {
  list.forEach((item, idx) => {
    item.userCode = code || idx + 1
    item.child_list && setData(item.child_list, item.userCode)
  })
}

setData(xx.data)

是不是这样

const originData = {
    "code": 1,
    "data": [{
            "department_name": "xx公司",
            "child_list": [{
                    "department_name": "销售部",
                    "child_list": [{
                        "amount": 10000.0,
                        "employee_name": "yq"
                    }]
                },
                {
                    "department_name": "商务部",
                    "child_list": [{
                        "amount": 2200.0,
                        "employee_name": "yq"
                    }]

                }
            ]
        },
        {
            "department_name": "FF公司",
            "child_list": [{
                    "department_name": "销售部",
                    "child_list": [{
                        "amount": 10000.0,
                        "employee_name": "张琪"
                    }]
                },
                {
                    "department_name": "商务部",
                    "child_list": [{
                        "amount": 2200.0,
                        "employee_name": "李浩"
                    }]

                }
            ]
        }
    ],
    "msg": "操作成功"
};


originData.data.forEach((data, index) => {
  data.userCode = index + 1 + '';
  data.child_list.forEach(child => {
    child.userCode = index + 1 + '';
  })
  
})
console.log(originData);
function addIndexToArray(data, value) {
  return data.map((item, index) => {
    let childList = recursiveArr(index + 1, item.child_list)
    return {
      ...item,
      userCode: index + 1,
      child_list: childList
    }
  })
}
function recursiveArr(index, data) {
    return data.map(_ => {
      let child = [];
      if (_.child_list && _.child_list.length) {
        child = recursiveArr(index, _.child_list)
      }
      return {
        ..._,
        userCode: index,
        child_list: child
      }
    })
}
推荐问题