如何把每一级的pstaffs提取出来放到一个新数组

departmentsMock: [
        {
          departmentId: "2019",
          departmentName: "科技公司",
          pstaffs: [
            {
              staffId: "09",
              staffName: "乾隆",
              staffPhone: "15677589942",
              staffImg: ""
            },
            {
              staffId: "10",
              staffName: "甄嬛",
              staffPhone: "15866491075",
              staffImg: ""
            },
            {
              staffId: "11",
              staffName: "年世兰",
              staffPhone: "13455961001",
              staffImg: ""
            }
          ],
          children: [
            {
              departmentId: "2020",
              departmentName: "前端部门",
              pstaffs: [],
              children: [
                {
                  departmentId: "2021",
                  departmentName: "VUE前端组",
                  pstaffs: [
                    {
                      staffId: "01",
                      staffName: "翠花",
                      staffPhone: "13844792012",
                      staffImg: require("../assets/images/pic.jpg")
                    },
                    {
                      staffId: "02",
                      staffName: "熊二",
                      staffPhone: "15499687555",
                      staffImg: require("../assets/images/pic0.jpg")
                    },
                    {
                      staffId: "03",
                      staffName: "熊大",
                      staffPhone: "18077596685",
                      staffImg: require("../assets/images/pic1.jpg")
                    }
                  ],
                  children: []
                },
                {
                  departmentId: "2022",
                  departmentName: "REACT前端组",
                  pstaffs: [],
                  children: []
                }
              ]
            },
            {
              departmentId: "2023",
              departmentName: "后端部门",
              pstaffs: [
                {
                  staffId: "04",
                  staffName: "张三峰",
                  staffPhone: "15058601551",
                  staffImg: require("../assets/images/ava1.jpg")
                }
              ],
              children: [
                {
                  departmentId: "2024",
                  departmentName: "算法部门",
                  pstaffs: [
                    {
                      staffId: "05",
                      staffName: "李四咣",
                      staffPhone: "18956474582",
                      staffImg: require("../assets/images/ava2.jpg")
                    }
                  ],
                  children: []
                },
                {
                  departmentId: "2025",
                  departmentName: "JAVA开发",
                  pstaffs: [],
                  children: []
                },
                {
                  departmentId: "2026",
                  departmentName: "C++开发",
                  pstaffs: [
                    {
                      staffId: "06",
                      staffName: "赵柳",
                      staffPhone: "13958476699",
                      staffImg: require("../assets/images/ava3.jpg")
                    },
                    {
                      staffId: "07",
                      staffName: "方圆",
                      staffPhone: "15088945627",
                      staffImg: require("../assets/images/ava4.jpg")
                    }
                  ],
                  children: []
                }
              ]
            },
            {
              departmentId: "2027",
              departmentName: "运营部门",
              pstaffs: [],
              children: [
                {
                  departmentId: "2028",
                  departmentName: "综合运营",
                  pstaffs: [
                    {
                      staffId: "08",
                      staffName: "刘诗诗",
                      staffPhone: "15799654585",
                      staffImg: ""
                    }
                  ],
                  children: []
                }
              ]
            },
            {
              departmentId: "2029",
              departmentName: "测试部门",
              pstaffs: [],
              children: [
                {
                  departmentId: "2030",
                  departmentName: "性能测试",
                  pstaffs: [],
                  children: []
                },
                {
                  departmentId: "2031",
                  departmentName: "功能测试",
                  pstaffs: [],
                  children: []
                }
              ]
            }
          ]
        }
      ],
阅读 1.5k
2 个回答

就酱?

image.png

let result = []
JSON.stringify(array, (k, v) => {
  if (k === 'pstaffs') result = result.concat(v)
  return v
});
result;

999999999999999999.png

console.log('结果', getPstaffs([], data))

function getPstaffs (res, list) {
  for(var item, a = 0; a < list.length; a++) {
    item = list[a]
    if(getType(item.pstaffs) === 'Array') {
      res = res.concat(item.pstaffs)
    }
    if(getType(item.children) === 'Array') {
      res = getPstaffs(res, item.children)
    }
  }
  return res;
}

function getType (data) {
  return Object.prototype.toString.call(data).replace(/(.*\s)|.$/g, '');
}
推荐问题