Trabalhando com LINQ na linguagem JavaScript

Por dti digital|
Atualizado: Jul 2023 |
Publicado: Set 2015

Este post é uma dica para quem trabalha com a linguagem JavaScript. Muitas vezes a manipulação de arrays ou listas de dados pode ser um problema, principalmente quando as operações a serem realizadas na estrutura de dados são um pouco mais complexas do que inserir ou remover um item, por exemplo.

Que tal utilizar o conceito de um dos recursos mais robustos da plataforma .NET para tratar o problema de manipulação de arrays no JavaScript? Com o .NET Framework conseguimos resolver grande parte destes problemas utilizando um excelente recurso da plataforma chamado LINQ.

Para quem não conhece, LINQ (.NET Language Integrated Query ou Consulta Integrada à Linguagem) é um conjunto de recursos da plataforma .NET que unifica a forma de acessar e manipular diferentes fontes de informações, tais como objetos, banco de dados e documentos XML. Introduzido no .NET Framework 3.5, LINQ tem uma arquitetura que o divide basicamente em 5 partes: para objetos, conjunto de dados, SQL, entidades e XML. Para maiores informações, acesse a documentação disponibilizada pela Microsoft¹,

Fonte:http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/pt/fig01.gif
Fonte:http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/pt/fig01.gif

Agora que temos uma ideia básica do que é LINQ, como podemos utilizar os seus conceitos em um projeto desenvolvido na linguagem JavaScript?

Muito simples, para isso existe uma biblioteca chamada Linq.js que tem as mesmas funcionalidades encontradas no LINQ do .NET Framework.

Com mais de 90 métodos para utilização, o Linq.js abstrai toda a lógica no que se refere à manipulação de conjunto de dados. Isso possibilita a implementação de funcionalidades complexas com uma sintaxe de fácil compreensão.

Para utilizar o Linq.js no seu projeto, basta acessar o site do projeto² realizar o download da biblioteca e incluir no seu código fonte. Se você usa o Visual Studio é ainda mais fácil, basta entrar no gerenciador de pacotes Nuget, procurar por Linq.js e adicionar à biblioteca na projeto desejado.

Agora vamos sair da teoria e demonstrar na pratica, através de alguns exemplos, o quanto a biblioteca Linq.js pode facilitar o desenvolvimento do seu projeto, possibilitando ganhos de desempenho e produtividade. Para efeito de demonstração, considere a seguinte lista de dados:

var listaDeUsuarios = [

{ “usuario”: { “id”: 1, “salario”: 200 }},

{ “usuario”: { “id”: 2, “salario”: 130 }},

{ “usuario”: { “id”: 3, “salario”: 500 }},

{ “usuario”: { “id”: 4, “salario”: 40 }},

{ “usuario”: { “id”: 5, “salario”: 130 }}

]

Função Where: obter os usuários cujo salário seja menor que 200

var resultado = Enumerable.From(listaDeUsuarios)

.Where(function (x) { return x.usuario.salario < 200 })

Resultado:  [

{ “usuario”: { “id”: 2, “salario”: 130 }},

{ “usuario”: { “id”: 4, “salario”: 40 }},

{ “usuario”: { “id”: 5, “salario”: 130 }}

]

Função Sum: obter a soma dos salários de todos usuários

var resultado = Enumerable.From(listaDeUsuarios)

.Sum(function (x) { return x.usuario.salario})

Resultado: 1000

Função Any: verificar se existe algum usuário com o salário maior que 300

var resultado = Enumerable.From(listaDeUsuarios)

.Any(function (x) { return x.usuario.salario > 300})

Resultado: true

Função Average: obter a média salarial dos usuários

var resultado = Enumerable.From(listaDeUsuarios)

.Average(function (x) { return x.usuario.salario})

Resultado: 200

 

Caso tenha alguma dúvida, a documentação completa da biblioteca está disponível no site³ do projeto. Ou ainda, entre em contato com a gente!

Referências:
1 – https://msdn.microsoft.com/pt-br/library/bb397926(v=vs.120).aspx
2 – https://linqjs.codeplex.com/
3 – http://neue.cc/reference.htm
4 – http://www.linhadecodigo.com.br/artigo/1729/introducao-ao-linq.aspx
Por: Renzo Oliveira
Revisão: Jéssica Saliba

Quer saber mais?

Desenvolvimento de Software

Confira outros artigos

WhatsApp Business na sua estratégia: muito além de um chatbot

Podemos dizer adeus a conversas monótonas com chatbots limitados e sem personalidade. Daqui em diante, veremos interfaces conversacionais oferecendo experiências digitais cada vez mais sofisticadas. Em outro artigo, abordamos como mais experiências estão sendo convertidas, progressivamente, em conversas e como essa tendência é potencializada pelos avanços nos modelos de Inteligência Artificial e nos canais de […]

Desenvolvimento de Software

inteligencia-artificial-ia-como-otimizacao-para-grandes-empresas

A Inteligência Artificial (IA) e otimização operacional nas empresas

Sumário1 Como a Inteligência Artificial (IA) pode otimizar operações empresariais e aumentar a eficiência? Descubra aqui!  2 Automatização de tarefas repetitivas e demoradas 2.1 Exemplos de IA para economia de tempo2.2 10 exemplos de como utilizar a Inteligência Artificial (IA) para automatizar tarefas repetitivas e/ou demoradas: 3 Melhoria da eficiência e redução de custos com Inteligência Artificial (IA)3.1 […]

Desenvolvimento de Software

Desenvolvimento Android e iOS

Desenvolvimento Android x iOS: 10 recomendações para o desenvolvimento produtivo

Entre agosto de 2022 e junho de 2023, o mercado de aplicativos móveis experimentou um crescimento notável, projetando um aumento anual de 13,4% até 2030, alcançando um mercado estimado em US$ 187,58 bilhões. E, certamente, a tendência é que essa expansão continue exponencialmente nos próximos anos.  Portanto, agora é a hora de explorar as oportunidades […]

Desenvolvimento de Software

Veja outros artigos de Desenvolvimento de Software