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.
var materias = [];
function agregarMateria(){
var materia_txt = document.getElementById("mat_add").value;
materias.push([materia_txt,"valido","valido"]);
recargaSelect();
materia_txt.value="";
}
function recargaSelect(){
var select_my = document.getElementById("list_mats");
select_my.innerHTML = "";
var option_default = document.createElement("option");
option_default.text = "Todos(Seleccióna)";
option_default.value = "valido";
select_my.add(option_default);
for (var i = 0; i<= materias.length; i++) {
var aux_arreglo = materias[i];
if(aux_arreglo[1]=="valido" && aux_arreglo[2]=="valido"){ //ESTA LINEA ME DA ERROR
var option = document.createElement("option");
option.text = aux_arreglo[0];
option.value = aux_arreglo[0];
select_my.add(option);
}
}
}
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.
Cita de: MinusFour en 9 Octubre 2020, 00:30 AM
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!