Métodos C# equivalente em C# (versão ES6)
Postado em C#, JavaScript
No post anterior mostrei algumas funções do LINQ equivalente em JavaScript, porém, na versão suportada até o ECMAScript 5. Esse post tem o código atualizado para a versão ES6
Vamos utilizar o mesmo array simples para manipular os dados:
let usuarios = [ { nome: "Tiago", id: 1 }, { nome: "Crizanto", id: 2 }, { nome: "John", id: 3 }, { nome: "Doe", id: 4 } ];
LINQ Where
let filtroPorId = usuarios.filter(x => x.id <= 2) console.log("Id:", filtroPorId);
LINQ Select
let nomes = usuarios.map(x => x.nome) console.log("Nome:", nomes);
LINQ All
let maiorQueDois = usuarios.every(x => x.id > 2); //existe id maior que dois? console.log("Id's maiores que 2: ", maiorQueDois); //true
LINQ Any
let menorQueTres = usuarios.some(x => x.id < 1); //existe id menor que 1? console.log("Id's menores que 3", menorQueTres); // false
LINQ Sum
let somaIds = usuarios.reduce((item1, item2) => { return { nome: '', id: item1.id + item2.id }; }); console.log("Soma Id's", somaIds.id);
LINQ OrderBy
let ordenadoPorNome = usuarios.sort(function (a, b) { return a.nome < b.nome ? 1 : -1; }); //Ordenação decrescente. Para ordenar de forma crescente basta utilizar a.nome > b.nome console.log("Ordenado por nome:", ordenadoPorNome);
Combinando funções
Também é possível combinar funções como por exemplo retornar o de forma ascendente os id’s maiores que 2:
let data = usuarios.filter((pessoa) => { return pessoa.id > 2; }).map((pessoa) => { return pessoa.nome; }).sort((a, b) => { return a > b ? 1 : -1; }); console.log("Usuário com id > 2 ordenado decrescente:", data);
[…] que não dão suporte ao ECMAScript 6. Se você já trabalha com javascript moderno vá para este post que os códigos estão […]