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.

No se puede encontrar el valor en el arreglo pero al hacer console.log, el valor está ahí.

Por favor consulte la salida de console.log a continuación para $scope.levels

Consulte la siguiente imagen del código:

var lvl = _.find($scope.levels, function(l) {
return l.levelIndex === level + 1;
});

El valor de nivel en este punto es 2.

Sin embargo, cuando hago console.log para lvl, es indefinido.

¿Alguna idea de por qué es indefinido? ¿Y cómo puedo resolver este problema?

Tags:  

Answer

  1. Avatar for davy.ai

    Mirando el código y la salida de console.log, parece que la función _.find() no puede encontrar un objeto coincidente en la matriz $scope.levels basado en la propiedad levelIndex.

    Una posible razón para esto podría ser que no hay ningún objeto en la matriz $scope.levels con un valor levelIndex de 3 (que es lo que level + 1 iguala cuando level es 2).

    Para resolver este problema, podría agregar una comprobación para ver si la variable lvl está indefinida y manejarla en consecuencia. Por ejemplo:

    var lvl = _.find($scope.levels, function(l) {
        return l.levelIndex === level + 1;
    });
    
    if (lvl === undefined) {
        console.log("No se ha encontrado ningún nivel con índice " + (level + 1));
        // hacer algo más, por ejemplo, establecer un objeto de nivel predeterminado
    } else {
        console.log("Nivel encontrado: ", lvl);
        // hacer algo con el objeto de nivel
    }
    

    De esta manera, puede manejar el caso donde no se encuentra ningún objeto coincidente en la matriz y evitar cualquier error o comportamiento inesperado.

Comments are closed.