Обход вложенных объектов Javascript - количество и отношение - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь пройти через большой Javascript Object, содержащий массив объектов с n уровнями глубокого массива объектов для репортеров. Объект составляет ~ 30 тыс. Строк. Я пытаюсь определить количество сотрудников в каждом отделе и имя сотрудника (менеджера) с наибольшим количеством репортеров для каждого отдела.

Рекурсия исключена из-за ошибки максимального размера стека вызовов. Я пробовал разные итеративные подходы, но я застрял при попытке пройти через несколько объектов вложенного массива.

const eobj = [
{
    employeeId: "1",
    fName: "Johnny",
    lName: "Chung",
    title: "Something boss",
    department: "business",
    managerEmployeeId: null,
    reports: [
      {
        employeeId: "763",
        fName: "John",
        lName: "Pittman",
        department: "Design",
        managerEmployeeId: "1",
        reports: [{
            employeeId: "1118",
            fName: "Kate",
            lName: "Bowers",
            department: "Residential Architecture",
            managerEmployeeId: "763",
            reports: [{
                employeeId: "1191",
                fName: "Brylee",
                lName: "Sparks",
                department: "Residential Architecture",
                managerEmployeeId: "1118",
                reports: [/* many reportees */]
           },
           {
                    employeeId: "1200",
                    fName: "Brielle",
                    lName: "Gonzalez",
                    department: "Residential Architecture",
                    managerEmployeeId: "1191",
                    reports: [/* many reportees */]
           }]
       },
       {
         employeeId: "923",
         fName: "Alexander",
         lName: "Reyes",
         department: "Commercial Architecture",
         managerEmployeeId: "763",
         reports: [/* many reportees */]
       }]
    }]}
];

Я пытаюсь получить результат i.e. { 1118: 3,200 } для каждого отдела.

Например, Кейт Бауэрс (employeeId: 1118) отвечает за всех сотрудников жилой архитектуры и является сотрудником с наибольшим количеством репортеров, под ней 3200 сотрудников.

Большое вам спасибо! Вся помощь очень ценится.

...