对于这个模糊的问题,我深表歉意。希望我的例子能使我的问题更加清晰...... 所以我有一个像这样的分层数据结构:
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/