Trust you doing great !!!1
Trying to create a directed graph
between airports using AdjacencyList
shown in YT Video using Map function
in Node.js and ran the below code in online editor pramp.com
,problem is why Map is showing the output as Empty
...It should show up a Map like this ,also if you can explain what this line of code does routes.forEach(route => addEdge(...route))
why 3 dots
and fat arrow =>
Question is is this problem with online editor Pramp.com
? I dont want to use VSCode
hence using online editor
//The Data
const airports = 'PHX BKK OKC JFK LAX MEX EZE HEL LOS LAP LIM'.split(' ');
const routes = [
['PHX','LAX'],
['PHX','JFK'],
['JFK','OKC'],
['JFK','HEL'],
['MEX','LAX'],
['MEX','BKK'],
['MEX','LIM'],
['MEX','EZE'],
['LIM','BKK'],
];
//The Graph
const adjacencyList = new Map();
//add-node
function addnode(airport){
adjacencyList.set(airport,[]);
//Add edge,undirected
function addEdge(origin,destination){
adjacencyList.get(origin).push(destination);
adjacencyList.get(destination).push(origin);
}
//Create the Graph
airports.forEach(addNode);
routes.forEach(route => addEdge(...route))
}
console.log(adjacencyList);
In Pramp
editor i see this
Many Thanks In advance
Carolyn
Ellipsis (...) is the spread operator. It takes an array, for example [origin, destination] and basically turns it into two vars origin, destination. Calling
addEdge(...[origin,destination])
is like calling
addEdge([origin,destination][0], [origin,destination][1])
Which is the same as
addEdge(origin,destination)
The "fat arrow" operator is a lambda (anonymous function) definition.
(a,b) => { console.log(a, b) }
is the same as
function (a,b) { console.log(a, b) }
Its just a shorter way to define functions without names. Usually simple ons that are given as parameters. In this case to the forEach call.