Article image
Gabrielly Santos
Gabrielly Santos02/10/2024 10:44
Compartilhe

Utilizando métodos Map e forEach para gerenciar estoques

    Imagina que você tenha um estoque de produtos variados, cada um com um identificador (como o código de cadastro no sistema), nome, preço e categoria. Suponha que queremos aplicar descontos específicos para cada categoria de produto. Podemos utilizar o método map, que percorre um array de objetos e gera um novo array baseado nos dados processados.

    Para este exemplo, considere que a empresa trabalha somente com três categorias: Eletrônicos, Roupas e Eletrodomésticos. A lógica de desconto será a seguinte:

    Eletrônicos: 10% de desconto,
    Roupas: 20% de desconto,
    Eletrodomésticos: 15% de desconto.
    

     Criaremos nosso array de objetos

    const produtos = [ 
    { id: 1, nome: 'Notebook', preco: 3000, categoria: 'Eletrônicos' }, 
    { id: 2, nome: 'Camiseta', preco: 50, categoria: 'Roupas' }, 
    { id: 3, nome: 'Fritadeira', preco: 400, categoria: 'Eletrodomésticos' }, 
    { id: 4, nome: 'Calça', preco: 150, categoria: 'Roupas' }, 
    { id: 5, nome: 'Smartphone', preco: 2000, categoria: 'Eletrônicos' } 
    ];
    

     Criaremos uma constante chamada produtos desconto que irá receber toda a lógica de desconto.

    const produtosComDesconto = produtos.map((produto) => { 
    let precoComDesconto; 
    // Aplicar desconto com base na categoria
    if (produto.categoria === 'Eletrônicos') { 
      precoComDesconto = produto.preco - (produto.preco * 0.10); 
    } else if (produto.categoria === 'Roupas') { 
        precoComDesconto = produto.preco - (produto.preco * 0.20); 
    } else { 
        precoComDesconto = produto.preco - (produto.preco * 0.15); 
    } 
     
    // Retornar o novo objeto com os detalhes do produto
    return { 
    id: produto.id, 
    nome: produto.nome, 
    categoria: produto.categoria, 
    precoOriginal: produto.preco, 
    precoComDesconto: precoComDesconto.toFixed(2) }; 
    });
    

     Imprimindo o resultado

    produtosComDesconto.forEach(produto => { 
    console.log(`Produto: ${produto.nome} - Categoria: ${produto.categoria} - Preço Original: R$ ${produto.precoOriginal} - Preço com Desconto: R$ ${produto.precoComDesconto}`); 
    });
    

    Resumo

    Neste exemplo, usamos o map para aplicar os descontos sem alterar o array original, criando um novo array com as informações dos produtos e seus preços com desconto. *OBS: Usei no else externo o desconto de 15%, pois a empresa está limitada apenas a essas três categorias, logo se o produto não pertence a categoria de roupas ou eletrônicos, não tem outra categoria a não ser eletrodomésticos.

    E por último utilizei o forEach, para exibir os resultados de forma detalhada, mostrando o nome do produto, a categoria, o preço original e o preço após o desconto.

    Compartilhe
    Comentários (1)

    CS

    Cristiano Santos - 02/10/2024 13:21

    Gostei, obrigado