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.`);