A la que desarrollas algo complejo con JavaScript necesitas echar mano de algunas funciones para trabajar con arrays y objetos JSON que no están implementadas de forma nativa. Es el caso, por ejemplo, de algo tan sencillo como desordenar un array. Una buena manera de resolver muchos problemas de esta naturaleza es emplear la librería underscore.js que —aunque alcanza todo su potencial integrada con algún framework, como backbone— es muy útil por sí misma. Apenas 4.9 kb que te ahorran horas y horas de búsqueda en Google.
Por ejemplo, para desordenar un array o un jasonako basta con emplear la función __shuffle
<script>
var libreria = {
libros : [
{ titulo: "Kalevala", "genero": "mitología" },
{ titulo: "Los mandarines", "genero": "novela" },
{ titulo: "Giordano Bruno", "genero": "ensayo" }
]
};
_.shuffle(libreria.libros);
// Giordano Bruno
console.log(libreria.libros[2].titulo);
</script>
Por ver otro caso, otra función entre muchas de gran utilidad es findWhere, que nos devuelve el primer valor que se ajusta a los parámetros indicados (como un WHERE de MySQL).
var libroKalevala = _.findWhere(libreria.libros, {"titulo":"Kalevala"});
//Object {titulo: "Kalevala", genero: "mitología"}
console.log(libroKalevala);
En fin, chulísima. Si saco tiempo, iré recopilando en esta entrada mis funciones favoritas.
Mis funciones favoritas
1. Tipo de variables
Para saber si una variable es undefined o null, en vez de tener que trastear con typeof haciendo cosas como estas:
if (typeof yourvar != 'undefined') { ... }
Más elegante y cómodo:
- _.isNaN(object)
- _.isNull(object)
- _.isUndefined(value)