-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
60 lines (52 loc) · 2.05 KB
/
script.js
File metadata and controls
60 lines (52 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
const produtos = [
{ nome: "Headphone Logitech G435", preco: 499.0, emEstoque: true },
{ nome: "Notebook Acer Nitro", preco: 4999.0, emEstoque: true },
{ nome: "Galaxy S24+", preco: 1599.0, emEstoque: true },
{ nome: "TV Crystal UHD", preco: 1099.0, emEstoque: false },
];
// Função utilitária para formatar preço
const formatarPreco = (valor) => `R$ ${valor.toFixed(2).replace(".", ",")}`;
// Exibir a estrutura completa de produtos
console.log("Lista completa de produtos:");
console.table(produtos.map((p) => ({ ...p, preco: formatarPreco(p.preco) })));
// Calcular e exibir o valor total de itens em estoque utilizando filter + reduce
const total = produtos
.filter((p) => p.emEstoque)
.reduce((soma, p) => soma + p.preco, 0);
console.log("Total (R$) dos itens em estoque:", formatarPreco(total));
// Criar um novo array com 10% de desconto em cada preço usando map
const comDesconto = produtos.map((p) => ({
...p,
preco: Number((p.preco * 0.9).toFixed(2)),
}));
console.log("Preços com 10% de desconto:");
console.table(
comDesconto.map((p) => ({ ...p, preco: formatarPreco(p.preco) }))
);
// Filtrar apenas produtos disponíveis com filter
const produtosDisponiveis = produtos.filter((produto) => produto.emEstoque);
console.log("Produtos disponíveis em estoque:");
console.table(
produtosDisponiveis.map((p) => ({ ...p, preco: formatarPreco(p.preco) }))
);
// for...of para imprimir o nome de cada produto
console.log("Nomes de produtos por for...of:");
for (const produto of produtos) {
console.log(produto.nome);
}
// while para percorrer o array e exibir cada nome
console.log("Nomes de produtos por while:");
let contador = 0;
while (contador < produtos.length) {
console.log(produtos[contador].nome);
contador++;
}
// do...while para fazer uma contagem regressiva de quantos itens faltam processar
let faltamProcessar = produtos.length;
console.log("Contagem regressiva de itens a processar:");
do {
console.log(`Falta processar: ${faltamProcessar} item(s)`);
faltamProcessar--;
} while (faltamProcessar > 0);
console.log("Processamento concluído.");