New to JS, I come from Python world so need some help.
I am fetching some data from B.E. that looks something like:
{
"Airports": {
"BCN": {
"Arrivals": [{ "flight": "BIO", "time": "1:00" , "passengers": 10}, { "flight": "VGU", "time" : "2.00","passengers": 20 }, {"flight": "MEX", "time": "3.00", "passengers": 30 } ],
"Departures": [{ "flight": "BIO", "time": "1:00" }, { "flight": "VGU", "time" : "2.00" }, {"flight": "MEX", "time": "3.00" }]
},
}
}
I want to pick up Arrival/Departure data per airport and convert it into a list of dictionaries (Key /Value pairs) something that looks like this :
FlightData.Airports.BCN.Arrivals
[
{"0:00":[]},
{"1:00":["flight": BIO, "passengers": 10]},
{"2:00":["flight": VGU, "passengers": 20]},
{"3:00":["flight": MEX, "passengers": 30]},
]
Is there an easy way to do this. This is what I have tried so far:
let arrivalDict = Object.keys(arrivals).reduce(
(acc: any, k: any) => (
(acc[arrivals[k]] = [...(acc[arrivals[k]] || []), k]), acc
),
{}
);
Is it better to use Lodash?
["flight": BIO, "passengers": 10]is not valid JavaScript.[]is for arrays, only objects havekey:valuepairs. Do you want an array of objects there?arrivals[k].timeas the key of the result.