Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Exercício

const produtos = [
  { nome: 'Notebook', preco: 2500, quantidadeVendida: 75 },
  { nome: 'Mouse', preco: 100, quantidadeVendida: 180 },
  { nome: 'Teclado', preco: 150, quantidadeVendida: 125 },
  { nome: 'Monitor', preco: 900, quantidadeVendida: 95 }
];

let relatorio = '';
let produtosMaisVendidos = '';
let totalPorProduto = '';

const maisLucrativo = {nome: '', totalVendas: 0}

produtos.forEach(produ => {
    const totalProdutoVendido = produ.preco * produ.quantidadeVendida

    relatorio += `Produto: ${produ.nome}| Preço: R$ ${produ.preco} | Quantidade vendida: ${produ.quantidadeVendida}\n`

    if (produ.quantidadeVendida > 100) {
        produtosMaisVendidos += `${produ.nome}\n` 
    }

    totalPorProduto += `${produ.nome}: R$ ${totalProdutoVendido}\n`

    if (totalProdutoVendido > maisLucrativo.totalVendas) {
        maisLucrativo.nome = produ.nome

        maisLucrativo.totalVendas = totalProdutoVendido
    }
})

console.log('Relatório de produtos vendidos')
console.log(relatorio)

console.log('Produtos com alto volume de vendas (> 100 unidades):')
console.log(produtosMaisVendidos)

console.log('Total de vendas por produto')
console.log(totalPorProduto)

console.log('Produto mais lucrativo:')
console.log(`${maisLucrativo.nome} com R$ ${maisLucrativo.totalVendas} em vendas`)
1 resposta

Olá, Alan! Tudo bem?

O seu exercício Painel de controle de produtos ficou bem estruturado e mostra um bom uso de arrays, objetos, forEach, condicionais e template strings para montar relatórios em JavaScript.

Você conseguiu percorrer a lista de produtos, calcular o total de vendas por produto, identificar itens com alto volume de vendas e encontrar o produto mais lucrativo, o que atende muito bem à proposta da atividade. Uma dica para evoluir o código é usar nomes um pouco mais descritivos no callback, como produto em vez de produ, e considerar métodos como filter(), map() e reduce() em versões futuras, pois eles ajudam a separar melhor cada etapa do processamento dos dados.

Como você adaptaria esse painel para também calcular o faturamento total de todos os produtos juntos?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!