¡Confía en que lo estás haciendo genial! 1
Intentando crear un directed graph entre aeropuertos usando AdjacencyList que se muestra en YT Video usando Map function en Node.js y ejecutó el siguiente código en el editor en línea pramp.com , el problema es por qué Map muestra la salida como Empty ... Debería aparecer un mapa como este, también si puede routes.forEach(route => addEdge(...route)) qué 3 dots esta línea de código =>
La pregunta es: ¿este problema es con el editor en línea Pramp.com ? No quiero usar VSCode , por lo tanto, uso el editor en línea
//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); En el editor Pramp veo esto
Muchas gracias de antemano
Carolina
Puntos suspensivos (...) es el operador de dispersión. Toma una matriz, por ejemplo [origen, destino] y básicamente la convierte en dos vars origen, destino. Vocación
addEdge(...[origin,destination])es como llamar
addEdge([origin,destination][0], [origin,destination][1])que es lo mismo que
addEdge(origin,destination)El operador "flecha gruesa" es una definición lambda (función anónima).
(a,b) => { console.log(a, b) }es lo mismo que
function (a,b) { console.log(a, b) }Es solo una forma más corta de definir funciones sin nombres. Por lo general, complementos simples que se dan como parámetros. En este caso a la llamada forEach.