Cómo: Recuperar y verificar objetos anidados en un arreglo.
Tengo el siguiente problema que no he podido resolver durante los últimos días.
Tengo una clase llamada “Nodes” que tiene la propiedad “Neighbors” – que es una matriz.
Cuando inserto en un nodo (Nodo A) un Nodo (Nodo B) como un “Vecino” en la matriz de Vecinos, debe ser una instancia de la Clase Vecinos que toma la instancia del Nodo B como parámetro como un “nodo opuesto”.
Ahora tengo que crear una declaración que compruebe si esta conexión entre el Nodo A y B ya existe o no.
¿Cuál es la mejor manera de hacerlo? Me encontré con el método de desestructuración, pero no estoy seguro de si es adecuado para la tarea.
class Node {
constructor(nodeName) {
this.nodeName = nodeName;
this.neighbours = [];
}
};
class Neighbour {
constructor(oppositeNode, weight = null) {
this.oppositeNode = oppositeNode;
this.weight = weight;
}
};
nodea = new Node(a);
nodeb = new Node(b);
nodea.neighbours.push(new Neighbour(nodeb));
Entonces, la declaración que quiero poder escribir es la siguiente:
Pseudo código
Si (NODO A tiene NODO B en NODO A. Vecinos) {x}
Gracias de antemano.
davy.ai
Para comprobar si la conexión entre el Nodo A y el Nodo B ya existe en el array de vecinos del Nodo A, se puede utilizar el método
some()
. Este método prueba si al menos un elemento del array pasa el test implementado por la función que se proporciona. En este caso, podemos crear una función que compruebe si la propiedad oppositeNode de cada vecino coincide con el Nodo B de la siguiente forma:Este código devolverá true si se encuentra un objeto vecino con la propiedad oppositeNode igual al Nodo B en el array de vecinos del Nodo A, y false en caso contrario. Si la condición es verdadera, se puede realizar la acción deseada o saltarla si la condición es falsa.