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

272
Vistas
Para problemas de iteración de bucle y matriz: TypeError: no se puede leer la propiedad '0' de undefined

Al compilar mi código me sale un error de

TypeError: no se puede leer la propiedad '0' de indefinido

Entiendo que el error esencialmente significa que el código está tratando de extraer un elemento de matriz que no existe. Esto suele suceder porque hay un incremento de bucle for sin ningún límite para terminar. Sin embargo, across++ tiene un límite de for(let across=0; across<matrix[0].length; across++){ Me gustaría saber qué está causando el mensaje de error.

Contexto/Tarea:

Después de hacerse famosos, los CodeBots decidieron mudarse juntos a un nuevo edificio. Cada una de las habitaciones tiene un costo diferente, y algunas de ellas son gratuitas, ¡pero corre el rumor de que todas las habitaciones gratuitas están embrujadas! Dado que los CodeBots son bastante supersticiosos, se niegan a quedarse en ninguna de las habitaciones libres, o en cualquiera de las habitaciones debajo de cualquiera de las habitaciones libres. Dada la matriz, una matriz rectangular de números enteros, donde cada valor representa el costo de la habitación, su tarea es devolver la suma total de todas las habitaciones que son adecuadas para los CodeBots (es decir, sume todos los valores que no aparecen a continuación un 0). Ejemplo: matriz = [[0, 1, 1, 2], [0, 5, 0, 0], [2, 0, 3, 3]] la salida debe ser solución (matriz) = 9.


 function solution(matrix) { let count = 0; for(let across=0; across<matrix[0].length; across++){ for(let down=0; down<matrix.length; down++){ if(matrix[across][down] == 0){ across++; }else{ count += matrix[across][down]; } } } return count; } //[ [1, 1, 1, 0], [0, 5, 0, 1], [2, 1, 3, 10] ] // 0 1 2

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

0

Para resumir, ha transpuesto accidentalmente una fila y una columna en su acceso a la matriz. Cambie los diversos códigos de acceso a la matriz a:

 matrix[down][across]

Notas sobre la depuración de esto: el mensaje de error sugirió que donde usa matrix[across][down] , debe haber sido el caso que matrix[across] tenía un valor undefined y down tenía el valor 0 . Eso es lo que causó el error:

TypeError: no se puede leer la propiedad '0' de indefinido

Y eso sucedió porque across estaba fuera de alcance. JavaScript no verifica el rango y simplemente produce undefined en ese caso. Si su matriz tuviera 3 filas y 3 columnas, no habría visto el error (aunque habría estado allí, esperando fallar en el futuro).

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