Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

268
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!