Я пытался отсортировать базу полезных данных ответа по полю объекта «sortOrderNumber», в котором содержится внутренний дочерний элемент.
Полезная нагрузка ответа:
{
"content":
[
{
"eserviceSettings":[
{
"serviceName":"Licenses",
"sortOrderNumber":5,
"eserviceSettings":[
{
"serviceName":"Manning Licenses",
"sortOrderNumber":2,
"eserviceSettings":[
{
"serviceName":"Enquiry on Application Status",
"sortOrderNumber":2,
"eserviceSettings":[
]
},
{
"serviceName":"Enquiry of Manning Licence and Submission",
"sortOrderNumber":1,
"eserviceSettings":[
]
}
]
},
{
"serviceName":"Craft Licenses",
"sortOrderNumber":1,
"eserviceSettings":[
{
"serviceName":"Application for New Harbour Craft Licence",
"sortOrderNumber":2,
"eserviceSettings":[
]
},
{
"serviceName":"Application for New Pleasure Craft Licence",
"sortOrderNumber":1,
"eserviceSettings":[
]
}
]
},
{
"serviceName":"Craft Inspection Booking",
"sortOrderNumber":5,
"eserviceSettings":[
]
}
]
}
]
}
]
}
Я пытался использовать приведенный ниже код
const childEservices = content[0].eserviceSettings;
this.postLoginDashboardData = allObjs.concat(childEservices);
this.postLoginDashboardData.sort((a: any, b: any) => a.sortOrderNumber - b.sortOrderNumber);
this.postLoginDashboardData.forEach( (element) => {
element.eserviceSettings.sort((a: any, b: any) => a.sortOrderNumber - b.sortOrderNumber);
});
Результат после сортировки ниже, где внутренние потомки не сортируются. Не уверен, где мне не хватает.
{
"content":
[
{
"eserviceSettings":[
{
"serviceName":"Licenses",
"sortOrderNumber":5,
"eserviceSettings":[
{
"serviceName":"Craft Licenses",
"sortOrderNumber":1,
"eserviceSettings":[
{
"serviceName":"Application for New Harbour Craft Licence",
"sortOrderNumber":2,
"eserviceSettings":[
]
},
{
"serviceName":"Application for New Pleasure Craft Licence",
"sortOrderNumber":1,
"eserviceSettings":[
]
}
]
},
{
"serviceName":"Manning Licenses",
"sortOrderNumber":2,
"eserviceSettings":[
{
"serviceName":"Enquiry on Application Status",
"sortOrderNumber":2,
"eserviceSettings":[
]
},
{
"serviceName":"Enquiry of Manning Licence and Submission",
"sortOrderNumber":1,
"eserviceSettings":[
]
}
]
}
,
{
"serviceName":"Craft Inspection Booking",
"sortOrderNumber":5,
"eserviceSettings":[
]
}
]
}
]
}
]
}
Любая помощь для лучшей сортировки с минимальным код. Результат, который я пытался получить, ниже
{
"content":
[
{
"eserviceSettings":[
{
"serviceName":"Licenses",
"sortOrderNumber":5,
"eserviceSettings":[
{
"serviceName":"Craft Licenses",
"sortOrderNumber":1,
"eserviceSettings":[
{
"serviceName":"Application for New Pleasure Craft Licence",
**"sortOrderNumber":1,**
"eserviceSettings":[
]
},
{
"serviceName":"Application for New Harbour Craft Licence",
**"sortOrderNumber":2,**
"eserviceSettings":[
]
}
]
},
{
"serviceName":"Manning Licenses",
"sortOrderNumber":2,
"eserviceSettings":[
{
"serviceName":"Enquiry of Manning Licence and Submission",
**"sortOrderNumber":1,**
"eserviceSettings":[
]
},
{
"serviceName":"Enquiry on Application Status",
**"sortOrderNumber":2,**
"eserviceSettings":[
]
}
]
},
,
{
"serviceName":"Craft Inspection Booking",
"sortOrderNumber":5,
"eserviceSettings":[
]
}
]
}
]
}
]
}
Заранее спасибо.