Trabalhando com LINQ na linguagem JavaScript
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](https://dtidigital.com.br/wp-content/uploads/2015/09/renzo.png)
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
Desenvolvimento de Software
Confira outros artigos
![](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2Fmecanismos-de-acompanhamento.webp&w=1024&q=75)
Mecanismos de Acompanhamento no Desenvolvimento de Software
O uso de mecanismos de acompanhamento é imprescindível no mundo do desenvolvimento de software e pode potencializar a eficiência digital. O acompanhamento efetivo das operações é fundamental para garantir a entrega de soluções digitais de sucesso. Na nossa empresa, utilizamos uma metodologia única, o dti evolve, que incorpora inteligência artificial (IA) para acelerar nosso processo de […]
Desenvolvimento de Software
![Fundo de código com celular apresentando eficiência digital com copilot](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FGitHub-copilot-eficiencia-dti.webp&w=1024&q=75)
Eficiência digital com copilot: um caso de uso do GitHub
Em um mundo em constante evolução tecnológica, otimizar o tempo e potencializar a eficiência digital se torna cada vez mais crucial. Portanto, vamos apresentar alguns experimentos que estão sendo implementados com o Git Hub Copilot em busca de maior eficiência digital. Certamente quem nos acompanha sabe que estamos experimentando e introduzindo as melhores ferramentas de […]
Desenvolvimento de Software
![Engenharia de Prompt - Como conversar com Ia](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FShutterstock_2422157137-1.png&w=1024&q=75)
Engenharia de Prompt: A Arte de Conversar com a IA
Sumário1 Falando a Linguagem das Máquinas2 O que é Engenharia de Prompt?3 A Importância da Engenharia de Prompt em Ação: Aplicações do Mundo Real 4 Princípios-chave da Engenharia de Prompt Eficaz4.1 Desconstruindo o Prompt:4.2 Técnicas de Engenharia de Prompt:4.3 Combinando Técnicas e Criando sua Obra-Prima:5 As Armadilhas da Engenharia de Prompt: Navegando pelos Limites dos Modelos […]
Desenvolvimento de Software