Я изучаю структуры данных в JS и написал некоторый код для построения структуры данных Graph.
Но, похоже, есть проблема, которую я не мог понять, почему это происходит.
Пожалуйста, посмотрите комментарии к методу getGraph (). Я просто печатаю размер списка и сам список здесь. list.size возвращает 0, даже если в списке есть данные.
Я создал отдельную карту, добавил данные и распечатал ее. Оно работает. Но в приведенном ниже случае.
class Graph {
constructor() {
this.list = new Map();
}
addVertex(vertex) {
if (!this.list[vertex]) {
this.list[vertex] = [];
console.log("Added", this.list);
} else {
console.log("Vertex already exists!");
}
}
addEdge(vertex, node) {
if (this.list[vertex]) {
if (!(this.list[vertex].indexOf(node) > -1)) {
this.list[vertex].push(node);
} else {
console.log('Node : ' + node + " already added!"); //?
}
} else {
console.log("Vertex " + vertex + " does not exist!")
}
}
getGraph() {
console.log(this.list);
console.log(this.list.size); // List size comes as zero even if I added some nodes and vertices
}
}
var graph = new Graph();
graph.addVertex("1");
graph.addVertex("2");
graph.addVertex("3");
graph.addVertex("1");
graph.addVertex("5");
graph.addVertex("5");
graph.addEdge("1", "3");
graph.addEdge("2", "3");
graph.addEdge("2", "3");
graph.addEdge("12", "3");
graph.getGraph();