1
resposta

Minha resoluçã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 }
];

function exibeRelatorioDeVendas (arr) {
    for(const produto of arr) {
        console.log(`Produto: ${produto.nome} | Preço: ${produto.preco} | Quantidade vendida: ${produto.quantidadeVendida}`)
    }

    const maisDeCemUnidadesVendidas = verificaMaisDeCemUnidadesVendidas(arr)
    const nomeDosMaisVendidos = maisDeCemUnidadesVendidas.map((produto) => produto.nome)

    console.log(`Produtos com alto volume de vendas (> 100 unidades): `, nomeDosMaisVendidos)

    arr.forEach(produto => {
        console.log(`${produto.nome}: R$ ${calculaTotalDeVendasPorProduto(produto)}`)
    });

    console.log(`Produto mais lucrativo: ${verificaProdutoMaislucrativo(arr).nome} com R$ ${calculaTotalDeVendasPorProduto(verificaProdutoMaislucrativo(arr))} vendidos`)
    }

function verificaMaisDeCemUnidadesVendidas(arr) {
    const maisDeCemUnidadesVendidas = arr.filter(produto => produto.quantidadeVendida > 100)
    return maisDeCemUnidadesVendidas;
}

function calculaTotalDeVendasPorProduto (produto) {
    return produto.preco * produto.quantidadeVendida;
}

function verificaProdutoMaislucrativo(arr) {
    return arr.reduce((maisLucrativo, produto) => {
        return calculaTotalDeVendasPorProduto(produto) > calculaTotalDeVendasPorProduto(maisLucrativo) ? produto : maisLucrativo;
    }, arr[0]);
}

exibeRelatorioDeVendas(produtos)
1 resposta

Olá, Bruno, tudo bem?

Parabéns pela resolução da atividade! O seu código ficou excelente: muito bem estruturado, com funções claras e uma lógica limpa. O uso do método reduce para encontrar o produto mais lucrativo foi uma ótima escolha.

Continue praticando e mergulhando nos estudos!

Sucesso

Imagem da comunidade