对于这个模糊的问题,我表示歉意。希望我的示例可以使我的问题更加清楚...
所以我有一个像这样的分层数据结构:
var Company = {
root: {
title: 'CEO',
employees: [{
title: 'Vice President',
employees: [{
title: 'Sales Lead'
}, {
title: 'Marketing Lead'
}]
}]
}
};
我的问题是如何找出根对象中的雇员总数?直观地看到,公司中有3名员工。我正在与递归合作以尝试解决此问题,但我似乎无法使其正常运行……或根本无法解决该问题。我感谢任何帮助,技巧或建议:)
最佳答案
您可以将.reduce
与可递归调用的命名函数一起使用。基本情况是对象没有雇员。
const totalEmployees = Company.root.employees.reduce(countEmployees, 0);
function countEmployees(prev, next) {
// count *this* employee
let sum = prev + 1;
if (next.employees && next.employees.length) {
// count any nested employees
sum += next.employees.reduce(countEmployees, 0);
}
return sum;
}
关于javascript - 我如何深入遍历类似JSON的数据结构以返回总计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35496745/