Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

284
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda