es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problemas de bucle y iteración de matrices: TypeError: No se puede leer la propiedad ‘0’ de indefinido.

Al compilar mi código, obtengo un error de

TypeError: No se puede leer la propiedad ‘0’ de indefinido

Entiendo que este error significa básicamente que el código está tratando de extraer un elemento de una matriz que no existe. Esto suele ocurrir cuando hay una incrementación de bucle for sin ningún límite para terminar. Sin embargo, across++ tiene un límite de for(let across=0; across<matriz[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 a un nuevo edificio juntos. Cada una de las habitaciones tiene un costo diferente, y algunas de ellas son gratis, ¡pero hay un rumor de que todas las habitaciones gratis están embrujadas! Como los CodeBots son bastante supersticiosos, se niegan a quedarse en cualquiera de las habitaciones gratis, o en cualquiera de las habitaciones debajo de las habitaciones gratis.
Dada una matriz llamada matrix, una matriz rectangular de números enteros, donde cada valor representa el costo de la habitación, tu tarea es devolver la suma total de todas las habitaciones adecuadas para los CodeBots (es decir, sumar todos los valores que no aparecen debajo de un 0).
Ejemplo:
matrix =
[[0, 1, 1, 2],
[0, 5, 0, 0],
[2, 0, 3, 3]]

la salida debería ser
solución(matrix) = 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 

</matriz[0].length;>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error se está produciendo debido a que los arrays en la variable matrix están siendo indexados en el orden incorrecto. En el bucle for(let across=0; across<matrix[0].length; across++),=”” across=”” debería=”” indexar=”” los=”” arrays=”” externos,=”” que=”” representan=”” las=”” filas=”” de=”” la=”” matriz,=”” no=”” los=”” arrays=”” internos=”” que=”” representan=”” las=”” columnas.=”” para=”” solucionar=”” esto,=”” el=”” bucle=”” debería=”” ser=”” for(let="" down="0;"></matrix[0].length;><matrix.length; down++). el código también debería verificar los valores indefinidos en la matriz antes de intentar acceder a ellos, para evitar la posibilidad de que se produzca este error. down++).="" el="" código="" también="" debería="" verificar="" los="" valores="" indefinidos="" en="" la="" matriz="" antes="" de="" intentar="" acceder="" a="" ellos,="" para="" evitar="" la="" posibilidad="" de="" que="" se="" produzca="" este=""></matrix.length; down++). el código también debería verificar los valores indefinidos en la matriz antes de intentar acceder a ellos, para evitar la posibilidad de que se produzca este error.>

Comments are closed.