var asd=[
{
parentCategoryId: 0,
name: "Test category",
categoryLevel: 0,
itemId: 1874249,
categoryId: 20
},
{
parentCategoryId: 0,
name: "Competitors",
categoryLevel: 0,
itemId: 1874249,
categoryId: 52
},
{
parentCategoryId: 0,
name: "Market Regions",
categoryLevel: 0,
itemId: 1874249,
categoryId: 8
},
{
parentCategoryId: 0,
name: "Strategic themes",
categoryLevel: 0,
itemId: 1874249,
categoryId: 9
},
{
parentCategoryId: 8,
name: "Europe",
categoryLevel: 1,
itemId: 1874249,
categoryId: 13
},
{
parentCategoryId: 9,
name: "M,A",
categoryLevel: 1,
itemId: 1874249,
categoryId: 18
},
{
parentCategoryId: 13,
name: "Finland",
categoryLevel: 2,
itemId: 1874249,
categoryId: 15
}
];
i=0;
result=[];
temp={};
temp2={};
function step(){
if(i<asd.length){
if(asd[i].parentCategoryId==0){
result[asd[i].categoryId]=asd[i].name;
i++;
step();
}else{
if(temp[asd[i].parentCategoryId]==undefined)
temp[asd[i].parentCategoryId]=asd[i].name;
else
temp[asd[i].parentCategoryId]='-'+asd[i].name;
i++;
step();
}
}else{
for(var j in temp){
if(result[j]!=undefined){
result[j]=result[j]+' - '+temp[j];
}else{
temp2[j]=temp[j];
}
}
//result=result.filter(element=>element!==null);
console.log(result);
console.log(temp2);
}
}
step();
если parentCategoryId == 0 то кладем в result.
Иначе нужно собрать все в кучу
Finland - parentCategoryId: 13 поэтому добавляем к categoryId 13, Europe - parentCategoryId: 8 поэтому добавляем к categoryId 8, Market Regions - parentCategoryId: 0 поэтому кладем в массив.
По результату должно получиться
[
"Market Regions - Europe - Finland"
"Strategic themes - M,A"
"Test category"
"Competitors"
]
Не понимаю как все рекурсивно добавить.