Подскажите как при помощи рекурсии получить сумму всех значений salary

const company = [{
        name: "Mike",
        salary: 500
    },
    [{
        name: "John",
        salary: 600
    }],
    [
        [{
            name: "Mary",
            salary: 400,
        }],
        [
            [
                [
                    [{
                        name: "Alex",
                        salary: 450
                    }]
                ]
            ]
        ],
    ],
];

Ответы (1 шт):

Автор решения: EzioMercer

Попробуйте как вариант такое решение:

const company = [{
        name: "Mike",
        salary: 500
    },
    [{
        name: "John",
        salary: 600
    }],
    [
        [{
            name: "Mary",
            salary: 400,
        }],
        [
            [
                [
                    [{
                        name: "Alex",
                        salary: 450
                    }],
                    [{
                        name: "Alex"
                    }]
                ]
            ]
        ],
    ],
];

const countSummarySalary = (branches) => {
    let sum = 0;

    if (Array.isArray(branches)) {
        for (const branch of branches) {
            sum += countSummarySalary(branch);
        }
    } else if (typeof branches === 'object') {
        return branches.salary ?? 0;
    }
  
    return sum;
}

console.log(countSummarySalary(company));

→ Ссылка