Я пытаюсь изменить порядок следования массивов.На самом деле сортировка основана на sourcelocation.orderindex
, каждому объекту соответствует свой другой объект (с rider_id
одинаковым) вместе с is_dropoff
полем true
, я хочу изменить порядок массива следующим образом.
Шаг 1: Объекты, для которых sourceindex
равен 0
, должны быть сверху, в нашем случае верхние 3 объекта будут сверху, теперь следующий объект должен иметь sourcelocation.order
больше 0
и is_dropoff
true, обратите внимание destinationlocation.orderindex
не должно быть больше, чем предстоящие объекты * значение 1013 *.
let inputSet = [
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "1"
},
"rider_ids": "2b7116ea3dead9870b828a1v"
},
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "1"
},
"rider_ids": "4b7116ea3dead9870b828a19"
},
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "3"
},
"rider_ids": "548e653d56060c83838b772e"
},
{
"rider_ids": "2b7116ea3dead9870b828a1v",
"is_dropoff": true,
"address": {
"orderindex": "1"
}
},
{
"rider_ids": "4b7116ea3dead9870b828a19",
"is_dropoff": true,
"address": {
"orderindex": "1"
}
},
{
"rider_ids": "548e653d56060c83838b772e",
"is_dropoff": true,
"address": {
"orderindex": "3"
}
},
{
"sourcelocation": {
"orderindex": "2"
},
"destinationlocation": {
"orderindex": "3"
},
"rider_ids": "5b8e676d56060c83838b772e"
},
{
"rider_ids": "5b8e676d56060c83838b772e",
"is_dropoff": true,
"address": {
"orderindex": "3"
}
}
]
Следующий ответ должен быть ожидаемым
let outputSet = [
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "1"
},
"rider_ids": "2b7116ea3dead9870b828a1v"
},
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "1"
},
"rider_ids": "4b7116ea3dead9870b828a19"
},
{
"sourcelocation": {
"orderindex": "0"
},
"destinationlocation": {
"orderindex": "3"
},
"rider_ids": "548e653d56060c83838b772e"
},
{
"rider_ids": "2b7116ea3dead9870b828a1v",
"is_dropoff": true,
"address": {
"orderindex": "1"
}
},
{
"rider_ids": "4b7116ea3dead9870b828a19",
"is_dropoff": true,
"address": {
"orderindex": "1"
}
},
{
"sourcelocation": {
"orderindex": "2"
},
"destinationlocation": {
"orderindex": "3"
},
"rider_ids": "5b8e676d56060c83838b772e"
},
{
"rider_ids": "5b8e676d56060c83838b772e",
"is_dropoff": true,
"address": {
"orderindex": "3"
}
},
{
"rider_ids": "548e653d56060c83838b772e",
"is_dropoff": true,
"address": {
"orderindex": "3"
}
}
]