jueves, 19 de mayo de 2011

Filtrar elementos nulos en jQuery

Lo primero será tener un array con elementos nulos.
var a=[1,2,0,"a",null,NaN,undefined,7,"","palabra",{}];
Vemos que en el array están presentes elementos como null, NanN, undefined y el cero. Todos ellos elementos nulos.
Para filtrar los elementos volvemos a apoyarnos en la función .grep(), la cual recibía el array con los elementos y la función de filtro. Pero, ¿qué función jQuery nos filtra los elementos nulos de un array?
Pues en ese caso vamos a utilizar el constructor de Boolean. Y es que cuando intentamos instanciar el constructor de Boolean con un elemento nulo, dicho constructor nos devolverá false.
Boolean(NaN); //false
Boolean(undefined); //false
Boolean(null); //false
Boolean(1); //true
El código para filtrar elementos nulos de un array con jQuery utilizando .grep() nos quedará de la siguiente forma:
var b = a.filter(Boolean);
Ya solo nos queda volcar el contenido del array.
$("#resultado").text(b.join(", "));