Segue os exercícios da maneira no qual pesquisei e depois desenvolvi:
console.log("===Exercício 1 ===");
function intercalarCores(...arrays) {
const maxLength = Math.max(...arrays.map(arr => arr.length));
const resultado = [];
for (let i = 0; i < maxLength; i++) {
arrays.forEach(arr => {
if ( i < arr.length) {
resultado.push(arr[i]);
}
})
}
return resultado;
}
const cores1 = ['vermelho', 'verde'];
const cores2 = ['azul', 'amarelo', 'roxo'];
const cores3 = ['laranja', 'preto', 'beterraba', 'jaboticaa'];
console.log(intercalarCores(cores1, cores2, cores3));
console.log("\n === Exercício 2 ===");
const valores = [20.90, 15.50, 8.25, 4.99, 12.75];
// Função para formatar moeda(valor) em reais(R$ XX,XX)
function formatarMoeda(valor) {
return valor.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });
}
// Calcular o total da compra com métode reduce
const total = valores.reduce((acumulador, valorAtual) => acumulador + valorAtual, 0);
// Aplica desconto de 10 reais para compra > 30
// Operador ternário(?) se true desconto de 10 se false 0 desconto
const desconto = total > 30 ? 10 : 0;
const totaComDesconto = total - desconto;
// Calcular taxa de entrega: frete grátis acima de 50 reais
const taxaDeEntrega = totaComDesconto > 50 ? 0 : 5;
const totaFinal = totaComDesconto + taxaDeEntrega;
// Exibe os itens do carrinho
console.log("*** Itens do Carrinho: ***");
valores.forEach((valor, index) => {
console.log(`Produto: ${index + 1} - ${formatarMoeda(valor)}`);
});
console.log("\n ==== Resumo da Compra ====");
console.log(`Subtotal: ${formatarMoeda(total)}`);
console.log(`Desconto: ${formatarMoeda(desconto)}`);
console.log(`Taxa de Entrega: ${formatarMoeda(taxaDeEntrega)}`);
console.log(`Total a pagar: ${formatarMoeda(totaFinal)}`);
console.log(" === OBRIGADO VOLTE SEMPRE! ===")
console.log("\n === Exercício 3 ===");
const estanteA = ['Guerra e Paz', 'Crime e Castigo', '1984', 'Dom Casmurro', '1984', 'Ana karenina', 'Moby Dick'];
const estanteB = ['Memórias Póstumas de Brás Cubas', 'O médico e o Monstro', '1984', 'Drácula', ' Os irmãos Karamazov', 'Guerra e Paz', 'A Metamorfose', 'Vidas Secas', 'Moby Dick', 'Revolução dos Bichos'];
const estanteC = ['República das Milícias', 'Subliminar', 'Ana Karenina', 'Crime e Castigo', 'Noites Brancas', 'Vidas Secas', 'Rei Lear', 'O Idiota', 'Drácula', 'Defeito de Cor', 'Memórias Póstumas de Brás Cubas', 'Torto Arado', 'Mestre Margarida', '1984', 'Revolução dos Bichos'];
// Acervo completo
console.log("\n === Acervo Completo da Biblioteca ===")
console.log("Estante A: " , estanteA.join(" , "));
console.log("Estante B: " , estanteB.join(" , "));
console.log("Estante C: " , estanteC.join(" , "));
const totalDeLivros = estanteA.length + estanteB.length + estanteC.length;
console.log(`A Biblioteca possui: ${totalDeLivros} exemplares no acervo.`);
// unir as lista e remover títulos duplicados com método SET
const titilosUnicos = [...new Set([...estanteA, ...estanteB, ...estanteC])];
console.log("\n *** Títulos Disponíveis na Biblioteca ***");
console.log(titilosUnicos.join(" , "));