Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: SrTrp en 9 Octubre 2020, 00:06 am



Título: javascript Error: Cannot read property '1' of undefined
Publicado por: SrTrp en 9 Octubre 2020, 00:06 am
Hola que tal, llevo ya horas dándole vuelta y no encuentro de donde viene este error " "Cannot read property '1' of undefined" donde esto viene de mi arreglo "aux_arreglo[1]=="valido" && aux_arreglo[2]=="valido")", creo un arreglo con el arreglo que tengo en mi lista de "materias", ya que le voy metiendo arreglos, todo bien inclusive entre la linea de error y donde le asigno eh comprobado de que tenga valor el arreglo y exactamente tiene los valores que deseo eh comprobado con console.log(aux_arreglo[0]), con valor 1 y 2 y me da los valores que tiene, pero al momento que hago la comparación en el if me da error, algo raro de que si me agrega los options al select.

Código
  1.  var materias = [];  
  2.  function agregarMateria(){
  3.    var materia_txt = document.getElementById("mat_add").value;
  4.    materias.push([materia_txt,"valido","valido"]);
  5.    recargaSelect();
  6.    materia_txt.value="";
  7.  }
  8.  function recargaSelect(){
  9.    var select_my = document.getElementById("list_mats");
  10.    select_my.innerHTML = "";
  11.    var option_default = document.createElement("option");
  12.    option_default.text = "Todos(Seleccióna)";
  13.    option_default.value = "valido";
  14.    select_my.add(option_default);      
  15.    for (var i = 0; i<= materias.length; i++) {
  16.      var aux_arreglo = materias[i];
  17.      if(aux_arreglo[1]=="valido" && aux_arreglo[2]=="valido"){ //ESTA LINEA ME DA ERROR
  18.        var option = document.createElement("option");
  19.        option.text = aux_arreglo[0];
  20.        option.value = aux_arreglo[0];
  21.        select_my.add(option);
  22.      }
  23.    }
  24.  
  25.  }
  26.  


Título: Re: javascript Error: Cannot read property '1' of undefined
Publicado por: MinusFour en 9 Octubre 2020, 00:30 am
Código
  1. for (var i = 0; i<= materias.length; i++) {

Tu ciclo recorre indices desde 0 hasta la longitud del arreglo. Los arreglos empiezan en 0 y la longitud de un arreglo siempre es mayor al último índice del arreglo. Eso quiere decir que si tienes un arreglo de 5 elementos, el último índice que tiene es 4. Tu código prueba con un índice de 5 que no existe, por lo tanto es indefinido.

En pocas palabras, quitale ese = a tu comparación.


Título: Re: javascript Error: Cannot read property '1' of undefined
Publicado por: SrTrp en 9 Octubre 2020, 00:42 am
Código
  1. for (var i = 0; i<= materias.length; i++) {

Tu ciclo recorre indices desde 0 hasta la longitud del arreglo. Los arreglos empiezan en 0 y la longitud de un arreglo siempre es mayor al último índice del arreglo. Eso quiere decir que si tienes un arreglo de 5 elementos, el último índice que tiene es 4. Tu código prueba con un índice de 5 que no existe, por lo tanto es indefinido.

En pocas palabras, quitale ese = a tu comparación.

Cierto cierto no me di cuenta muchisimas gracias!, como genere el for y viene por default desde la logitud hasta mayor igual que 0 no lo verifique gracias nuevamente!