数组数据结构转换

    var arr = [
        {
            depName: "技术部",
            depid: 5,
            list: [
                {
                    id: 1,
                    name: '前端开发',
                    posid: 1,
                    eid:1
                },
                {
                    id: 4,
                    name: '后端开发',
                    posid: 2,
                    eid: 2
                },
            ]
        },
        {
            depName: "财务部",
            depid: 5,
            list: [
                {
                    id: 10,
                    name: '财务员',
                    posid: 32,
                    eid: 2
                },
                {
                    id: 3,
                    name: '会计',
                    posid: 5,
                    eid: 7
                },
            ]
        }
    ]

期望得到:

    var arr = {
        "技术部": ["前端开发", "后端开发"],
        "财务部": ["财务员", "会计"],
    }
  

大佬们帮我看看,谢谢谢谢。

阅读 1.7k
2 个回答
arr.reduce((obj, item) => {
  obj[item.depName] ? null : obj[item.depName] = []
  item.list.forEach(i => {
    obj[item.depName].push(i.name)
  })
  return obj
}, {})
var obj = {};
for (let i = 0;i < arr.length;i++){
  let depName = arr[i].depName
  let newArr= [];
  let newList= arr[i].list;
  for (let j = 0;j< newList.length;j++){
    newArr.push(newList[j].name)
  }
  obj[depName] = newArr
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题