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

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
 

Deixe um comentário

3 comments

  1. ShanKnomma

    Viagra Prix Suisse cialis Cialis Preis In Deutschland

  2. Melissatiefe

    This message is posted here using XRumer + XEvil 4.0
    XEvil 4.0 is a revolutionary application that can bypass almost any anti-botnet protection.
    Captcha Recognition Google (ReCaptcha-1, ReCaptcha-2), Facebook, Yandex, VKontakte, Captcha Com and over 8.4 million other types!
    You read this – it means it works! 😉
    Details on the official website of XEvil.Net, there is a free demo version.

  3. Marishkasoart

    Замечательный видео-курс Десяточка для вас! Получи 50 видео-курсов всего за 199 рублей и зарабатывай. Только работающие способы заработка в интернете. Надёжные и работающие курсы. Поддержка по всем вопросам. Вот какие преимущества имеет курс Десятка. А преимущество этого сборника вот в чем, что Вы получаете огромный выбор тем для создания своего заработка. Платите за один курс, а получаете 50 способов для заработка, сложно сказать на какой методике вы пожелаете зарабатывать. Ваши деньги не потрачены зря… В видео-курсе Десятка, вы со 100% гарантией найдёте то, что вы искали и создадите свой заработок, заплатив всего 199 руб. , получая целый набор качественных курсов и поддержку если что то будет не понятно. Освоив выбранную методику, вы создадите надёжный источник дохода. В “ДЕСЯТКЕ” Вы найдёте все необходимые программы и сервисы как платные, так и бесплатные, для эффективной работы. Купив этот курс вы получаете хороший толчок, кто только желает зарабатывать в интернете, но пока не умеет и не знает с чего же начинать. У вас пока нет базы подписчиков, нет своего сайта, вы не умеете создавать свои качественные инфопродукты, хочу заметить это наилучшее решение для начинающих, чтобы создать свой заработок и зарабатывать от 1000 до 3000 рублей и более, уже на второй день, вникнуть в суть заработка на партнёрских программа, и не потерять своего времени и денег на начальном пути. Купить видео-курс Десятка:жми и купи сейчас