我有這個哈希陣列,并希望將其遞回到樹視圖中以使其ParentTradeFairResourceId存在。
我已經嘗試但沒有成功創建演算法。
在這里,我附上了代碼和我的作業。
var newArr = [{
"id": "39",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Yarn",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "15",
"FairCategoryUrl": "#",
"DisplayOrder": "3",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "40",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Apparel",
"IconUrl": "apparel-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "2",
"FairCategoryUrl": "#",
"DisplayOrder": "1",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "41",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Fabric",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "6",
"FairCategoryUrl": "#",
"DisplayOrder": "2",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "42",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Allied",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "17",
"FairCategoryUrl": "#",
"DisplayOrder": "4",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "57",
"tradefairid": "55964",
"ResourceId": "26",
"ResourceImageDetailId": "21",
"Name": "Exhibitors",
"IconUrl": "/header/apparel.svg",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "1",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "58",
"tradefairid": "55964",
"ResourceId": "27",
"ResourceImageDetailId": "22",
"Name": "Corporate Videos",
"IconUrl": "/header/fabric.svg",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "6",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "59",
"tradefairid": "55964",
"ResourceId": "28",
"ResourceImageDetailId": "23",
"Name": "Fair Lobby",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "60",
"tradefairid": "55964",
"ResourceId": "29",
"ResourceImageDetailId": "46",
"Name": "Auditorium",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "2",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "61",
"tradefairid": "55964",
"ResourceId": "32",
"ResourceImageDetailId": "23",
"Name": "Networking",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "4",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "62",
"tradefairid": "55964",
"ResourceId": "34",
"ResourceImageDetailId": "26",
"Name": "Knowledge",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "3",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "63",
"tradefairid": "55964",
"ResourceId": "35",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "7",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "64",
"tradefairid": "55964",
"ResourceId": "36",
"Name": "About Organizor",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "8",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "65",
"tradefairid": "55964",
"ResourceId": "37",
"Name": "About the Event",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "9",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "66",
"tradefairid": "55964",
"ResourceId": "41",
"Name": "Footer Exhibitor Directory",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "67",
"tradefairid": "55964",
"ResourceId": "42",
"Name": "F2F Services",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "10",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "68",
"tradefairid": "55964",
"ResourceId": "43",
"Name": "Contact US",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "11",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "69",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Category List",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "0",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"IsMandatory": "0"
},
{
"id": "70",
"tradefairid": "55964",
"ResourceId": "35",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "0",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "5",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "71",
"tradefairid": "55964",
"ResourceId": "49",
"ResourceImageDetailId": "36",
"Name": "Exhibitors",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "3",
"IsMandatory": "0"
},
{
"id": "72",
"tradefairid": "55964",
"ResourceId": "50",
"ResourceImageDetailId": "35",
"Name": "Auditorium",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "2",
"IsMandatory": "0"
},
{
"id": "73",
"tradefairid": "55964",
"ResourceId": "51",
"ResourceImageDetailId": "34",
"Name": "Knowledge",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "1",
"IsMandatory": "0"
},
{
"id": "74",
"tradefairid": "55964",
"ResourceId": "52",
"ResourceImageDetailId": "37",
"Name": "Networking",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "4",
"IsMandatory": "0"
},
{
"id": "75",
"tradefairid": "55964",
"ResourceId": "35",
"ResourceImageDetailId": "38",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "5",
"IsMandatory": "0"
},
{
"id": "79",
"tradefairid": "55964",
"ResourceId": "56",
"ResourceImageDetailId": "45",
"Name": "Booth Detail",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMandatory": "0"
},
{
"id": "95",
"tradefairid": "55964",
"ResourceId": "67",
"Name": "Signup",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "96",
"tradefairid": "55964",
"ResourceId": "69",
"Name": "Name",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "97",
"tradefairid": "55964",
"ResourceId": "70",
"Name": "Designation",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "98",
"tradefairid": "55964",
"ResourceId": "71",
"Name": "Company",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "99",
"tradefairid": "55964",
"ResourceId": "72",
"Name": "Business Category",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "100",
"tradefairid": "55964",
"ResourceId": "73",
"Name": "Email",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "101",
"tradefairid": "55964",
"ResourceId": "74",
"Name": "Mobile",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "102",
"tradefairid": "55964",
"ResourceId": "75",
"Name": "City",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "104",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "103",
"IsMandatory": "0"
},
{
"id": "105",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "104",
"IsMandatory": "0"
},
{
"id": "106",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "104",
"IsMandatory": "0"
},
{
"id": "107",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "105",
"IsMandatory": "0"
}
];
function main(newArr) {
let hasParentResourceId = newArr.filter((word) => word.ParentTradeFairResourceId);
let hasNotParentResourceId = newArr.filter((word) => !word.ParentTradeFairResourceId);
console.log(hasParentResourceId);
console.log(hasNotParentResourceId);
var countList = hasParentResourceId.reduce((p, c) => {
p[c.ParentTradeFairResourceId] = (p[c.ParentTradeFairResourceId] || 0) 1;
return p;
}, {});
var createNewArrayForCountList = [];
for (const property in countList) {
createNewArrayForCountList.push({
id: property
});
}
console.log(countList);
var mapMainArray = [];
console.log(createNewArrayForCountList);
setTimeout(() => {
for (let index = 0; index < createNewArrayForCountList.length; index ) {
var createNewArrr = [];
for (let j = 0; j < hasParentResourceId.length; j ) {
if (createNewArrayForCountList[index]["id"] == hasParentResourceId[j]['ParentTradeFairResourceId']) {
createNewArrr.push(hasParentResourceId[j]);
if (hasParentResourceId.length - 1) {
hasParentResourceId[j]['childElements'] = createNewArrr;
}
}
}
// mapMainArray.push({ 'childElements': createNewArrr });
// console.log(mapMainArray);
}
}, 500);
}
main(newArr);
uj5u.com熱心網友回復:
一步步
我首先會說我希望這很有用,但是您的問題并不完全清楚,我不完全確定您所說的意思
想要將它遞回到樹視圖中,直到 ParentTradeFairResourceId 存在。
我收集到的是,您的每個陣列物件都可以有一個父物件,并且您想要一個物件將每個子物件遞回地嵌套在父物件下,因此您將擁有多個級別。讓我們從只選擇那些位于根目錄(沒有父物件)的物件開始:
// Get the list of all roots
let roots = newArr.filter(e => !e.ParentTradeFairResourceId);
然后,對于每個根,我們要構建樹。為此,我們將向children每個根添加一個串列屬性,并將其所有子項放入其中。我們將創建一個簡單的函式來執行此操作:
function connectChildren(root, arr) {
root.children = [];
// connect the children from the array to the root
for (child of arr) {
if (child.ParentTradeFairResourceId == root.id) {
root.children.push(child);
}
};
return root;
}
現在,我們可以使用我們的roots陣列并為每個孩子呼叫我們的函式:
// Get the list of all roots
let roots = newArr.filter(e => !e.ParentTradeFairResourceId);
// Attach children to each root
for (let root of roots) {
root = connectChildren(root, newArr);
}
這一切都很好,我們可以看到 children 陣列被正確的子值填充。但是,這僅適用于 1 級(僅附加根的直接子級)。
我們需要更深入
為了解決這個問題,我們可以對函式中的每個孩子進行遞回呼叫,將它們用作新的根,并附加它們的孩子:
function connectChildren(root, arr) {
root.children = [];
// connect the children from the array to the root
for (let child of arr) {
if (child.ParentTradeFairResourceId == root.id) {
root.children.push(child);
}
}
// for each child, construct the tree in this same manner
for (let child of root.children) {
child = connectChildren(child, arr);
}
return root;
}
請注意,我們每次都傳遞完整的陣列,因此如果陣列定義中有任何回圈,這將不起作用。一旦將專案添加到樹中,您可以通過向后回圈和洗掉專案來緩解這種情況arr,但這通常應該可以正常作業。
可運行代碼示例:
let newArr = [{
"id": "39",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Yarn",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "15",
"FairCategoryUrl": "#",
"DisplayOrder": "3",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "40",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Apparel",
"IconUrl": "apparel-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "2",
"FairCategoryUrl": "#",
"DisplayOrder": "1",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "41",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Fabric",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "6",
"FairCategoryUrl": "#",
"DisplayOrder": "2",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "42",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Allied",
"IconUrl": "yarn-icon.jpg",
"IsForMobile": "0",
"IsForDesktop": "0",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "57",
"FairCategoryId": "17",
"FairCategoryUrl": "#",
"DisplayOrder": "4",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "57",
"tradefairid": "55964",
"ResourceId": "26",
"ResourceImageDetailId": "21",
"Name": "Exhibitors",
"IconUrl": "/header/apparel.svg",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "1",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "58",
"tradefairid": "55964",
"ResourceId": "27",
"ResourceImageDetailId": "22",
"Name": "Corporate Videos",
"IconUrl": "/header/fabric.svg",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "6",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "59",
"tradefairid": "55964",
"ResourceId": "28",
"ResourceImageDetailId": "23",
"Name": "Fair Lobby",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "60",
"tradefairid": "55964",
"ResourceId": "29",
"ResourceImageDetailId": "46",
"Name": "Auditorium",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "2",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "61",
"tradefairid": "55964",
"ResourceId": "32",
"ResourceImageDetailId": "23",
"Name": "Networking",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "4",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "62",
"tradefairid": "55964",
"ResourceId": "34",
"ResourceImageDetailId": "26",
"Name": "Knowledge",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "3",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "63",
"tradefairid": "55964",
"ResourceId": "35",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "7",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "64",
"tradefairid": "55964",
"ResourceId": "36",
"Name": "About Organizor",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "8",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "65",
"tradefairid": "55964",
"ResourceId": "37",
"Name": "About the Event",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "9",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "66",
"tradefairid": "55964",
"ResourceId": "41",
"Name": "Footer Exhibitor Directory",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "67",
"tradefairid": "55964",
"ResourceId": "42",
"Name": "F2F Services",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "10",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "68",
"tradefairid": "55964",
"ResourceId": "43",
"Name": "Contact US",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "0",
"DisplayOrder": "11",
"GroupId": "3",
"IsMandatory": "0"
},
{
"id": "69",
"tradefairid": "55964",
"ResourceId": "46",
"Name": "Category List",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "0",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"IsMandatory": "0"
},
{
"id": "70",
"tradefairid": "55964",
"ResourceId": "35",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "0",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "1",
"IsHeader": "1",
"DisplayOrder": "5",
"GroupId": "1",
"IsMandatory": "0"
},
{
"id": "71",
"tradefairid": "55964",
"ResourceId": "49",
"ResourceImageDetailId": "36",
"Name": "Exhibitors",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "3",
"IsMandatory": "0"
},
{
"id": "72",
"tradefairid": "55964",
"ResourceId": "50",
"ResourceImageDetailId": "35",
"Name": "Auditorium",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "2",
"IsMandatory": "0"
},
{
"id": "73",
"tradefairid": "55964",
"ResourceId": "51",
"ResourceImageDetailId": "34",
"Name": "Knowledge",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "1",
"IsMandatory": "0"
},
{
"id": "74",
"tradefairid": "55964",
"ResourceId": "52",
"ResourceImageDetailId": "37",
"Name": "Networking",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "4",
"IsMandatory": "0"
},
{
"id": "75",
"tradefairid": "55964",
"ResourceId": "35",
"ResourceImageDetailId": "38",
"Name": "Social Wall",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "59",
"DisplayOrder": "5",
"IsMandatory": "0"
},
{
"id": "79",
"tradefairid": "55964",
"ResourceId": "56",
"ResourceImageDetailId": "45",
"Name": "Booth Detail",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMandatory": "0"
},
{
"id": "95",
"tradefairid": "55964",
"ResourceId": "67",
"Name": "Signup",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"IsMandatory": "0"
},
{
"id": "96",
"tradefairid": "55964",
"ResourceId": "69",
"Name": "Name",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "97",
"tradefairid": "55964",
"ResourceId": "70",
"Name": "Designation",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "98",
"tradefairid": "55964",
"ResourceId": "71",
"Name": "Company",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "99",
"tradefairid": "55964",
"ResourceId": "72",
"Name": "Business Category",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "100",
"tradefairid": "55964",
"ResourceId": "73",
"Name": "Email",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "101",
"tradefairid": "55964",
"ResourceId": "74",
"Name": "Mobile",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "1"
},
{
"id": "102",
"tradefairid": "55964",
"ResourceId": "75",
"Name": "City",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "0",
"IsActive": "1",
"IsDesktopDefault": "0",
"IsMobileDefault": "0",
"IsMenu": "0",
"IsHeader": "0",
"ParentTradeFairResourceId": "95",
"IsMandatory": "0"
},
{
"id": "104",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "103",
"IsMandatory": "0"
},
{
"id": "105",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "104",
"IsMandatory": "0"
},
{
"id": "106",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "104",
"IsMandatory": "0"
},
{
"id": "107",
"tradefairid": "55964",
"ResourceId": "76",
"Name": "state",
"IsForMobile": "1",
"IsForDesktop": "1",
"IsWithLogin": "1",
"IsActive": "1",
"IsDesktopDefault": "1",
"IsMobileDefault": "1",
"IsMenu": "1",
"IsHeader": "1",
"ParentTradeFairResourceId": "105",
"IsMandatory": "0"
}
];
function connectChildren(root, arr) {
root.children = [];
// connect the children from the array to the root
for (let child of arr) {
if (child.ParentTradeFairResourceId == root.id) {
root.children.push(child);
}
};
// for each child, construct the tree in this same manner
for (let child of root.children) {
child = connectChildren(child, arr);
}
return root;
}
function main(arr) {
// Get the list of all roots
let roots = arr.filter(e => !e.ParentTradeFairResourceId);
// Attach children to each root
for (let root of roots) {
root = connectChildren(root, arr);
}
console.log('Result object:', roots);
}
main(newArr);
我希望這可以幫助您解決問題。假設您想為樹保持最大深度,您可以傳遞一個深度,在每次遞回呼叫時增加它,并且僅在深度等于最大值時才添加子級。這也將防止意外的無限遞回。如果這不是您正在尋找的解決方案,您實際上應該創建一個更簡單的示例:從輸入陣列中洗掉所有不必要的欄位,并明確說明您希望輸出是什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/472728.html
標籤:javascript jQuery 数组 json 树视图
上一篇:共享同一類時僅更新單個元素
下一篇:頁面預加載器未洗掉
