1
resposta

Minha solução

Adorei que a abordagem apresentada foi bem diferente da minha. Isso abriu um pouco mais minha mente para novas maneiras de resolver esse tipo de problema. Por utilizar apenas um loop, imagino que seja bem mais econômica que a minha solução.

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 }
];


// Mostrar todos os produtos (nome, preço, quantidade).
function showProducts (products){
    console.log('Relatório de produtos vendidos:')
    products.forEach(product => {
        console.log(`Produto: ${product.nome} | Preço: ${product.preco} | Quantidade vendida: ${product.quantidadeVendida}`)
    })
}

// Filtrar os que venderam mais de 100 unidades e exibir seus nomes.
function showBestSellers (products){
    console.log('Produtos com alto volume de vendas ( > 100 unidades):')

    const bestSellers = products.filter(product => product.quantidadeVendida > 100)
    
    for(const produto of bestSellers){
        console.log(produto.nome)
    }
}

// Calcular os totais de venda de cada produto.
function showTotal (products){
    console.log('Total de vendas por produto');
    products.forEach(product => console.log(`${product.nome}: R$ ${product.preco * product.quantidadeVendida}`))
}

// Descobrir o mais lucrativo.
function showBetterProfit (products){
    let betterProfit = products[0]

    for(let i = 1; i < products.length; i++){
        
        if((betterProfit.preco * betterProfit.quantidadeVendida) < (products[i].preco * products[i].quantidadeVendida)){
                    
            betterProfit = products[i+1];
        }
    }

    console.log(`Produto mais lucrativo: ${betterProfit.nome} com R$ ${betterProfit.preco * betterProfit.quantidadeVendida} em vendas.`)

    
}

showProducts(produtos);
console.log("");
showBestSellers(produtos);
console.log("");
showTotal(produtos);
console.log("");
showBetterProfit(produtos);

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Ei! Tudo bem, Alexander?

Parabéns por praticar a atividade. Ficou excelente como você organizou suas funções, ficou claro e bem dividido. O uso de forEach() e filter() está excelente para percorrer e selecionar os produtos.

Caso queira participar da nossa comunidade no Discord, para interagir por lá também, basta clicar na guia Comunidade > Discord no seu perfil:

Tela inicial da página da Alura com menu lateral escuro e texto branco. Botão "Comunidade" em vermelho no topo. Opções abaixo: "Discord" (estudo com outros), "Discord" (estude com outroas pessoas na nossa comunidade do Discord e "Sugestões".
Continue se dedicando aos estudos e qualquer dúvida, compartilhe.

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