【发布时间】:2022-11-24 03:35:35
【问题描述】:
我正在尝试转换此嵌套对象结构以将其与 react ag-grid 一起使用。
[
{
"data": {
"ID": "44",
"Name": "Trillian",
"Gender": "female",
"Ability": "mathematician",
"Minimal distance": "6.2000000000",
"Weight": "49",
"Born": "Mon Dec 14 00:00:00 CET 1994",
"In space since": "Wed Dec 24 17:21:50 CET 2014",
"Beer consumption (l/y)": "6704",
"Knows the answer?": "true"
},
"children": {
"has_nemesis": {
"records": [
{
"data": {
"ID": "1007",
"Character ID": "44",
"Is alive?": "true",
"Years": "29"
},
"children": {
"has_secrete": {
"records": [
{
"data": {
"ID": "2008",
"Nemesis ID": "1007",
"Secrete Code": "1799820570"
},
"children": {}
}
]
}
}
}
]
}
}
},
进入这个子父模式,我可以使用 ag 网格来创建层次结构数据表
[
{
"employeeId": 101,
"employeeName": "Erica Rogers",
"jobTitle": "CEO",
"employmentType": "Permanent",
"children": [
{
"employeeId": 102,
"employeeName": "Malcolm Barrett",
"jobTitle": "Exec. Vice President",
"employmentType": "Permanent",
"children": [
{
"employeeId": 103,
"employeeName": "Esther Baker",
"jobTitle": "Director of Operations",
"employmentType": "Permanent",
"children": [
{
"employeeId": 104,
"employeeName": "Brittany Hanson",
"jobTitle": "Fleet Coordinator",
"employmentType": "Permanent",
"children": [
{
"employeeId": 105,
"employeeName": "Leah Flowers",
"jobTitle": "Parts Technician",
"employmentType": "Contract"
},
{
"employeeId": 106,
"employeeName": "Tammy Sutton",
"jobTitle": "Service Technician",
"employmentType": "Contract"
}
]
},
{
"employeeId": 107,
"employeeName": "Derek Paul",
"jobTitle": "Inventory Control",
"employmentType": "Permanent"
}
]
},
{
"employeeId": 108,
"employeeName": "Francis Strickland",
"jobTitle": "VP Sales",
"employmentType": "Permanent",
"children": [
{
"employeeId": 109,
"employeeName": "Morris Hanson",
"jobTitle": "Sales Manager",
"employmentType": "Permanent"
},
{
"employeeId": 110,
"employeeName": "Todd Tyler",
"jobTitle": "Sales Executive",
"employmentType": "Contract"
},
{
"employeeId": 111,
"employeeName": "Bennie Wise",
"jobTitle": "Sales Executive",
"employmentType": "Contract"
},
{
"employeeId": 112,
"employeeName": "Joel Cooper",
"jobTitle": "Sales Executive",
"employmentType": "Permanent"
}
]
}
]
},
]
}]
const iterate = (obj) => {
Object.keys(obj).forEach((key) => {
console.log(obj[key].records);
// iterate(obj[key].records[0].data);
});
};
const filterData = (length) => {
if (length <= -1) {
return;
}
let newObject = {};
// console.log(data[length].children);
newObject = { ...data[length].data };
iterate(data[length].children);
length--;
filterData(length);
};
filterData(data.length - 1);
我正在尝试这个,但无法获得预期的结果。我想将每个数据属性转换为该数据属性中的父项和所有子项。
【问题讨论】:
-
输入和输出似乎完全无关。
employeeId和employeeName来自哪里?请创建一个带有实际预期输出的minimal reproducible example。
标签: javascript algorithm recursion data-structures javascript-objects