0
respostas

Conclusão

Tenho certeza que não ficou o mais otimizado que dava, mas eu tentei. Inclusive acabei usando o método .Reduce().

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

console.log('Relatório de produtos vendidos:\n')

for (let p of produtos) {
    console.log(`Produto: ${p.nome} | Preço: R$${p.preco} | Quantidade vendida: ${p.quantidadeVendida} unidades`);
};

console.log('\nProdutos com alto volume de vendas (acima de 100):')

const maisVendidos = produtos.filter(p => {
    if (p.quantidadeVendida >= 100) console.log(p.nome);
});

console.log('\nTotal de vendas por produto:')

for (let p of produtos) {
    console.log(`Total de vendas do ${p.nome}: R$${p.preco * p.quantidadeVendida}`);
};

console.log('\nProduto mais lucrativo:');

const maisLucrativo = produtos.reduce((anterior, atual) => {
    const lucroAnterior = anterior.preco * anterior.quantidadeVendida;
    const lucroAtual = atual.preco * atual.quantidadeVendida;

    return lucroAtual > lucroAnterior ? atual : anterior;
});

console.log(`\nProduto mais lucrativo: ${maisLucrativo.nome}, com R$${maisLucrativo.preco * maisLucrativo.quantidadeVendida} em vendas.`);