Изменение порядка объектов в массиве - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь изменить порядок следования массивов.На самом деле сортировка основана на 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"
    }
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...