Foros del Web » Programando para Internet » Javascript »

Cómo saber si un array es null?

Estas en el tema de Cómo saber si un array es null? en el foro de Javascript en Foros del Web. Hola, tengo un código en donde un array es null, pero quiero saber como hacer para verificarlo con un if y poder hacer alguna accion, ...
  #1 (permalink)  
Antiguo 14/07/2011, 12:07
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 11 años, 9 meses
Puntos: 4
Cómo saber si un array es null?

Hola, tengo un código en donde un array es null, pero quiero saber como hacer para verificarlo con un if y poder hacer alguna accion, miren este es mi código:

Código:
var status = document.getElementById('status');
function checarRequest(){
var ban;
	if(conexion.readyState==4){
		var datos=eval("("+conexion.responseText+")");
        alert(datos);
        if(datos!=null){
            for(i = 0; i<datos.length; i++){
            alert('entra for con:'+datos);
			if(nombre==datos[i].nombre){
				ban=1;
        }else{
            ban = 0;
            }
		}
        }
		if(ban==1){
			status.innerHTML = "Ese nombre ya esta en uso";
		}
		else{
			status.innerHTML = "Ese no esta en uso";
		}
	}
	else{
	status.innerHTML = "Verificando disponibilidad...";
	}

}
ahi cuando le doy el alert a datos me dice null, pero en el if es donde para la pagina, y por cierto tambien alguién sabrá porque no me sirve el innerHTML??

gracias desde ya
  #2 (permalink)  
Antiguo 14/07/2011, 20:19
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 10 años, 7 meses
Puntos: 1485
Respuesta: Cómo saber si un array es null?

buenas,
un array nunca es null, pues son dos tipos de datos distintos. lo que si es posible es que una variable cambie de tipo de dato; es lo que supongo que en realidad quisistes decir. lo que no comprendo bien cuál es el propósito de la distinción. según el código estas buscando si un nombre ya ha sido ocupado. la logística que puedes seguir es siempre devolver un array aunque no exista alguna coincidencia. luego iteras el array en busca de alguna coincidencia. si existe alguna, entonces notificas que ya esta ocupado. de lo contrario, indicas que esta disponible. el punto es que siempre trabajes desde una variable tipo array.

sobre el segundo problema con innerHTML, probablemente sea que estas interpretando el código antes de tiempo. es decir, al momento que se interpreta el código, dicho elemento no existe en el documento. y por eso, cuando intetas utilizar innerHTML no te funciona. para hacer una prueba, realiza un alert (o log en la consola) de la variable status para determinar su valor. si dice null, entonces es que no encontro el elemento.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 15/07/2011, 02:01
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 11 años, 9 meses
Puntos: 4
Respuesta: Cómo saber si un array es null?

Hola muchisimas gracias por la respuesta, creo que me falto poner un poco mas de información, lo siento; en efecto, quiero buscar si un nombre está dentro de una base de datos, y si el arreglo que tengo (datos) lo intento recorrer, pero no sabía porque fallaba en el for, después descubri que fue por el datos.length, al cambiarlo por un numero hacia el for, así que decidí hacer un alert a datos, y lo que me muestra es null, entonces intenté comparando datos!= null pero no entra en el if, no se porqué.

Y lo de mi otro problema tienes toda la razón, me da null al hacer el alert, lo que me desconcierta ya que estas funciones estan en un archivo js, y status es una referencia a un div que esta en otro archivo html en el que estoy mandando a llamar el archivo externo js y las funciones.

muchas gracias.

Etiquetas: innerhtml, null, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:43.