JavaScript Fundamentals

Domine a Manipulação de Arrays JavaScript com Map e Filter

Spread the love

Este artigo demonstra como usar efetivamente os métodos map() e filter() do JavaScript, individualmente e em combinação, para processamento eficiente de arrays. Exploraremos exemplos práticos para ilustrar seu poder e versatilidade na manipulação de dados.

Sumário

JavaScript Map

O método map() é uma função de ordem superior que itera sobre cada elemento em um array e aplica uma função de callback fornecida. Essa função transforma cada elemento, e map() retorna um novo array contendo os valores transformados. O array original permanece inalterado.


const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(number => number * 2); // [2, 4, 6, 8, 10]
console.log(doubledNumbers);
console.log(numbers); // Array original inalterado

JavaScript Filter

O método filter() também itera sobre um array. No entanto, em vez de transformar elementos, ele inclui seletivamente elementos com base em uma condição definida por uma função de callback. A função de callback deve retornar true para incluir o elemento e false para excluí-lo. filter() retorna um novo array contendo apenas os elementos que satisfazem a condição.


const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(number => number % 2 === 0); // [2, 4, 6]
console.log(evenNumbers);

Encadeando Map e Filter

O verdadeiro poder de map() e filter() é revelado quando eles são encadeados. Isso permite uma maneira concisa e eficiente de realizar manipulações de dados complexas. filter() é tipicamente aplicado primeiro para reduzir o array, seguido por map() para transformar os elementos restantes.


const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const evenSquared = numbers
  .filter(number => number % 2 === 0)
  .map(number => number * number); // [4, 16, 36, 64, 100]
console.log(evenSquared);

Exemplo do Mundo Real: Filtragem de Produtos em E-commerce

Imagine um aplicativo de e-commerce. Temos um array de objetos de produto:


const products = [
  { name: "Camisa", price: 25, inStock: true, category: "roupas" },
  { name: "Calça", price: 40, inStock: false, category: "roupas" },
  { name: "Sapatos", price: 75, inStock: true, category: "calcados" },
  { name: "Chapéu", price: 15, inStock: true, category: "acessorios" },
  { name: "Jaqueta", price: 60, inStock: true, category: "roupas" }
];

Queremos exibir apenas os nomes dos itens de vestuário em estoque. Podemos alcançar isso elegantemente usando filter() e map():


const inStockClothingNames = products
  .filter(product => product.inStock && product.category === "roupas")
  .map(product => product.name);

console.log(inStockClothingNames); // ['Camisa', 'Jaqueta']

Conclusão

Combinar map() e filter() oferece uma abordagem poderosa e legível para manipulação de arrays em JavaScript. Esse estilo funcional promove código mais limpo, reduz a necessidade de loops verbosos e melhora a manutenção. Lembre-se que ambos os métodos retornam novos arrays, preservando a imutabilidade dos dados originais.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *