Created
January 24, 2021 15:40
-
-
Save stevermeister/2c0182a43f14c68692b204aa2268ff48 to your computer and use it in GitHub Desktop.
convert data from list to tree format
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let data = [{ | |
"counterpartyGroupId": 10, | |
"counterpartyGroupName": "Офисные сооружения", | |
"counterpartyGroupTypeId": 3, | |
"counterpartyGroupRemark": "Офисы", | |
"counterpartyGroupParentId": 0 | |
}, | |
{ | |
"counterpartyGroupId": 11, | |
"counterpartyGroupName": "Страховые компании", | |
"counterpartyGroupTypeId": 5, | |
"counterpartyGroupRemark": "Страховые", | |
"counterpartyGroupParentId": 0 | |
}, | |
{ | |
"counterpartyGroupId": 12, | |
"counterpartyGroupName": "Вина", | |
"counterpartyGroupTypeId": 2, | |
"counterpartyGroupRemark": "Вина Молдовы", | |
"counterpartyGroupParentId": 15 | |
}, | |
{ | |
"counterpartyGroupId": 13, | |
"counterpartyGroupName": "Трактора и машины", | |
"counterpartyGroupTypeId": 5, | |
"counterpartyGroupRemark": "Комбайны и трактора", | |
"counterpartyGroupParentId": 11 | |
}, | |
{ | |
"counterpartyGroupId": 14, | |
"counterpartyGroupName": "Диллер автозапчастей", | |
"counterpartyGroupTypeId": 5, | |
"counterpartyGroupRemark": "Кузовные детали", | |
"counterpartyGroupParentId": 13 | |
}, | |
{ | |
"counterpartyGroupId": 15, | |
"counterpartyGroupName": "Транспортная компания", | |
"counterpartyGroupTypeId": 3, | |
"counterpartyGroupRemark": "работают в Киеве", | |
"counterpartyGroupParentId": 10 | |
}, | |
{ | |
"counterpartyGroupId": 16, | |
"counterpartyGroupName": "Строители", | |
"counterpartyGroupTypeId": 3, | |
"counterpartyGroupRemark": "My friend!!", | |
"counterpartyGroupParentId": 2 | |
}, | |
{ | |
"counterpartyGroupId": 17, | |
"counterpartyGroupName": "Никуда не ехать", | |
"counterpartyGroupTypeId": 2, | |
"counterpartyGroupRemark": "Лучшие на рынке", | |
"counterpartyGroupParentId": 13 | |
}, | |
{ | |
"counterpartyGroupId": 18, | |
"counterpartyGroupName": "Лес и дрова", | |
"counterpartyGroupTypeId": 5, | |
"counterpartyGroupRemark": "Приятно с ним работать", | |
"counterpartyGroupParentId": 0 | |
} | |
]; | |
function findChildItems(id, data){ | |
let result = []; | |
data.forEach(item => { | |
if(item.counterpartyGroupParentId == id){ | |
result.push({ | |
id: item.counterpartyGroupId, | |
name: item.counterpartyGroupName, | |
children: findChildItems(item.counterpartyGroupId, data) | |
}); | |
} | |
}); | |
return result; | |
} | |
console.log(JSON.stringify(findChildItems(0, data))); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment