我有一个代表国家的对象列表。
每个国家都有很多员工。每个员工对象都有自己的属性和对其经理的引用。
员工可以有一个不存在的经理或坐在不同国家的经理。
我正在尝试用员工和经理之间的父子关系重建一个新对象。
var Markets = {
"CH":{
"Resources": {
"user1": {"First name": "John", "Last name": "Blue", "Job Title": "Job 1", "Email": "john@email", "Manager": ""},
"user2": {"First name": "Bob", "Last name": "Black", "Job Title": "Job 2", "Email": "bob@email", "Manager": "user1"},
"user3": {"First name": "Joe", "Last name": "Brown", "Job Title": "Job 3", "Email": "joe@email", "Manager": "user1"},
"user4": {"First name": "Jack", "Last name": "White", "Job Title": "Job 4", "Email": "jack@email", "Manager": "user2"}
"user5": {"First name": "Jess", "Last name": "Red", "Job Title": "Job 5", "Email": "jess@email", "Manager": ""}
}
}
因此,我的新对象看起来像:
user 1
user 2
user 3
user 4
user 5
我想出了以下功能,但我很难让它递归以确保它将二级经理重新分配到一级。
function countryOrgChart(market) {
var orgChartData = {};
for (var resource in window['Markets'][market]['Resources']) {
orgChartData[resource] = [];
}
orgCharDataTmp = orgChartData;
for (var resource in orgCharDataTmp {
var manager = window['Markets'][market]['Resources'][resource]['Manager'];
if (manager in orgChartData) {
orgChartData[manager].push(resource);
delete orgChartData[resource];
}
}
return(orgChartData);
}