Introducción a Linq to JavaScript

Linq es un lenguaje de consulta sobre colecciones de objetos, generalmente escuchamos sobre LinqToSQL , LinqToXML, LinqToDataSet entre otros, pero también lo puedes ocupar con Javascript, el lenguaje de moda Sonrisa

Primero que nada LinqToJavascript  (JSLINQ) es una implementación de Linq to Object en JavaScript. Está creado usando un conjunto de métodos de extensión en Arreglos de Objetos de Javascript. Si estamos utilizando un Arreglo, podemos entonces utilizar LINQ to Javascript.

Ejemplo de Uso

Primero que nada, debes descargar la librería en jslinq.codeplex.com, con la descarga tienes los script y bastantes ejemplos que sin duda, son de gran ayuda. Primero que nada vamos a agregar las referencias a los Script y luego crear un arreglo de objetos

<script type=“text/javascript” src=“scripts/JSLINQ.js”></script>

<script>

  var Personas =[

                {Rut:1, Nombre:“Gonzalo”,Apellido:“Perez”,Edad:32},

                {Rut:2, Nombre:“Pedro”,Apellido:“Correa”,Edad:31},

                {Rut:3, Nombre:“Carlos”,Apellido:“Jerez”,Edad:26},

                {Rut:4, Nombre:“Gonzalo”,Apellido:“Diaz”,Edad:23},

                {Rut:5, Nombre:“Juan”,Apellido:“Rocha”,Edad:19},

                {Rut:6, Nombre:“Jose”,Apellido:“Osses”,Edad:27},

                {Rut:7, Nombre:“Gonzalo”,Apellido:“Mellado”,Edad:21}

            ];

</script>

Debemos crear ahora una instancia del objeto JSLINQ con nuestro arreglo Personas:

var ejemploPersonas = JSLINQ(Personas);

Podemos además ocupar el operador Where para especificar el criterio de selección y además ocupar el método Count()

 

var cantPersonas =JSLINQ(Personas).Where(function(persona){
                         return persona.Nombre == “Gonzalo”;}).Count();

Veamos ahora como recorrer el arreglo de personas resultantes de una consulta por Nombre:

var ejemploPersonas =JSLINQ(Personas).Where(function(persona){
                                return persona.Nombre == “Gonzalo”;
                      });

           

var rs = ejemploPersonas.ToArray();

for (var i in rs) {

    alert( rs[i].Nombre +” “

         + rs[i].Apellido +” “

         + rs[i].Edad);

    }

En el caso que queramos obtener una consulta ordenada por algún campo, en este caso edad, debemos modificar la consulta para incluir el campo edad en el orden:

var ejemploPersonas =JSLINQ(Personas).Where(function(persona){ 

                                  return persona.Nombre == “Gonzalo”;

                        }).OrderBy(function(persona){return persona.Edad;});

           

var rs = ejemploPersonas.ToArray();

for (var i in rs) {

    alert( rs[i].Nombre +” “

         + rs[i].Apellido +” “

         + rs[i].Edad);

}

Y listo!, bastante útil para manejar nuestros objetos JSON que podemos obtener a través de un WS, revisa la página del proyecto y los ejemplos que se descargan para mayor detalle.

Espero que te sirva!

Saludos

@chalalo

 

3 comentarios en “Introducción a Linq to JavaScript”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *