-
Notifications
You must be signed in to change notification settings - Fork 25
/
Airport itinerary.js
44 lines (36 loc) · 1.19 KB
/
Airport itinerary.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
Description:
Travel itinerary
When you travel around the world you pass though different airports.
TRN -> FCO -> JFK
And then return back to home
JFK - TRN
In order to propose the unique list of airports that your trip uses we have to create an itinerary feature that can compress the list of airports including only the list of unique in/out combination.
For example, a trip with:
[TRN-FCO] [FCO-JFK] [JFK-TRN]
Should be represented as:
TRN-FCO-JFK-TRN
That is the unique list of airport steps.
Now in our database we save the travel as a list of objects with in/out properties and you will receive that list always sorted in the right way.
[
{in: "TRN", out: "FCO"},
{in: "FCO", out: "JFK"},
{in: "JFK", out: "FCO"}
]
Now we have to create a helper function itinerary for JS that extract the unique airport list:
travel = itinerary([
{in: "TRN", out: "FCO"},
{in: "FCO", out: "JFK"},
{in: "JFK", out: "FCO"}
]); // TRN-FCO-JFK-FCO
Or a helper class Route for C#/C++:
*/
function itinerary(travel) {
let itinerary=[];
for (let i=0;i<travel.length;i++)
{
itinerary.push(travel[i].in)
itinerary.push(travel[i].out)
}
return itinerary.filter((v,i)=>v!==itinerary[i+1]).join('-')
}