Мне трудно найти путь от родителя к ребенку.
Ниже "fullPath" - это то, чего я пытаюсь достичь. Получить родительский путь и дочерний путь.
[{
"name": "menu1",
"path": "/path1",
"id": 1,
"parentId": 0,
"item": [{
"name": "subMenu1",
"path": "/itemPath1",
"parentId": 1,
"id": 3,
"fullpath": "/path1/itemPath1"
}, {
"name": "subMenu2",
"path": "/itemPath2",
"parentId": 1,
"id": 4,
"fullpath": "/path1/itemPath2"
}]
}, {
"name": "menu2",
"path": "/path2",
"id": 2,
"parentId": 0,
"item": [{
"name": "subMenu2",
"path": "/itemPath2",
"parentId": 2,
"id": 5,
"fullpath": "/path2/itemPath2"
}]
}]
Функция javascript, использованная для создания вышеуказанного json.
var getList = function(list) {
var result = {items: []},length = list.length;
var tmpStore = {}
var i, item, id, pId;
for (i = 0; i < length; ++i) {
item = list[i];
id = item.id;
tmpStore[id] = item;
pId = parseInt(item.parentId, 10);
if (pId === 0) {
result.items.push(item);
} else {
if (typeof tmpStore[pId].items === 'undefined') {
tmpStore[pId].items = [];
}
tmpStore[pId].items.push(item);
}
}
return result;
};
var output = getList(list1);
var sideDetailsInfo = output.items;
console.log(sideDetailsInfo)
// Вышеуказанная функция создана фуюшимоя.
var list1 variable contains the below.
var list1 = [{
"name": "menu1",
"id": 1,
"parentid": 0,
"path": "/path1"
}, {
"name": "menu2",
"id": 2,
"parentid": 0,
"path": "/path2"
}, {
"name": "subMenu1",
"id": 3,
"parentid": 1,
"path": "/itemPath1"
}, {
"name": "subMenu2",
"id": 4,
"parentid": 1,
"path": "/itemPath2"
}, {
"name": "subMenu2",
"id": 5,
"parentid": 2,
"path": "/itemPath2"
}]
Ваша помощь приветствуется, и любые советы будут великолепны.