Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

142
Vistas
JavaScript para Loop - Código de error "elemento no definido"

Estoy un poco atascado aquí porque no puedo entender por qué esto no funciona. Cuando trato de ejecutar el código, dice "ReferenceError: el elemento no está definido", pero pensé que al escribir "let item" lo estoy definiendo. ¿Alguna idea de cuál es el problema aquí?

  • Sé que el código parece un poco más complicado de lo necesario, pero necesito hacerlo así.
 class Graph { constructor() { this.nodes = new Set(); this.edges = new Set(); } add(m,n){ let e = new Edge (m,n) var allEdges = new Set(); for (let item of this.edges){ allEdges.add(item.startpoint.nodeName,item.endpoint.nodeName) }; if (allEdges.has(e.startpoint.nodeName,e.endpoint.nodeName)){ console.log("first OCL Constraint") } else if(allEdges.has(e.endpoint.nodeName,e.startpoint.nodeName){ console.log("second OCL Constraint")} else { this.edges.add(item.startpoint.nodeName,item.endpoint.nodeName)}; } }; class Edge { constructor(startpoint,endpoint) { this.startpoint = startpoint; this.endpoint = endpoint; } }; class Node { constructor(nodeName) { this.nodeName = nodeName } }; node1 = new Node (1); node2 = new Node (2); node3 = new Node (3); node4 = new Node (4); node5 = new Node (5); myTestGraph = new Graph(); myTestGraph.add(node1,node2); myTestGraph.add(node2,node1); myTestGraph.add(node3,node4);

Gracias por adelantado :)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema parece estar en el último "else", donde hace referencia al "elemento" fuera de su alcance (declara let item dentro del bloque for) Creo que el código correcto para el método add() es:

 add(m,n){ let item; let e = new Edge(m,n); var allEdges = new Set(); for (item of this.edges){allEdges.add(item.startpoint.nodeName,item.endpoint.nodeName)}; if (allEdges.has(e.startpoint.nodeName,e.endpoint.nodeName)){console.log("first OCL Constraint")} else if(allEdges.has(e.endpoint.nodeName,e.startpoint.nodeName)){console.log("second OCL Constraint")} else {this.edges.add(item.startpoint.nodeName,item.endpoint.nodeName)}; }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda