JSFiddle - React, Tailwind, and code Playground
by Yurii Predborskyi
JavaScript
let a = '{"pickUp": null, "dropOff": null, "portOfOrigin": {"name": "portOfOrigin", "status": "not-passed", "address": {"city": "London", "name": "GB LON", "country": "United Kingdom", "postCode": "", "province": ""}, "carrier": {"imo": "", "name": "", "type": "", "vessel": "", "trackingLink": "", "trackingNumber": ""}, "sortOrder": 20, "actualArrivalDate": null, "plannedArrivalDate": "2019-08-29T21:00:00.000Z", "actualDepartureDate": null, "plannedDepartureDate": "2019-08-31T21:00:00.000Z", "actualCustomsClearanceDate": null, "plannedCustomsClearanceDate": null}, "portOfDestination": {"name": "portOfDestination", "status": "not-passed", "address": {"city": "New York", "name": "GB LON", "country": "United States", "postCode": "", "province": ""}, "carrier": {"imo": "", "name": "", "type": "", "vessel": "", "trackingLink": "", "trackingNumber": ""}, "sortOrder": 40, "actualArrivalDate": null, "plannedArrivalDate": "2019-09-18T21:00:00.000Z", "actualDepartureDate": null, "plannedDepartureDate": "2019-09-25T21:00:00.000Z", "actualCustomsClearanceDate": null, "plannedCustomsClearanceDate": null}, "transshipmentPort": null}';
let b = JSON.parse(a);
let vals = Object.values(b);
vals = vals.filter(a=>a).sort((a, b) => {
if (a === null && b !== null) return 1;
if (b === null && a !== null) return -1;
if (a && b) return a.sortOrder - b.sortOrder;
return 0;
});
console.log(vals);