Segue a maneira de como eu realizei a lista de exercícios de 1 a 4:
console.log("Exercício 1");
// Acervo de Livros
const acervoNaoFiccao = [
{ titulo: "Sapiens", autor: "Yuval Harari", paginas: 512, publicaçao: 2021 },
{ titulo: "Dostoiévski:Um escritor em seu tempo", autor: "Joseph Frank", paginas: 1299, publicaçao: 2018 },
{ titulo: "Todo dia a mesma noite", autor: "Daniela Arbex", paginas: 202, publicaçao: 2018 },
{ titulo: "1808 - Como uma Rainha Louca,...", autor: "Laurentino Gomes", paginas: 391, publicaçao: 2007 },
{ titulo: "Os Botões de Napoleão", autor: "Penny Le Couteur e Jay Burreson", paginas: 280, publicaçao: 2006 }
];
const acervoFiccao = [
{ titulo: "Memórias Póstumas de Brás Cubas", autor: "Machado de Assis", paginas: 449, publicaçao: 1881 },
{ titulo: "Os Miseráveis", autor: "Victor Hugo", paginas: 1511, publicaçao: 1862 },
{ titulo: "A Profecia", autor: "David Seltzer", paginas: 280, publicaçao: 1976 },
{ titulo: "1984", autor: "George Orwell", paginas: 474, publicaçao: 1949 },
{ titulo: "O Conde de Monte Cristo", autor: "Alexandre Dumas", paginas: 2072, publicaçao: 1844 }
];
// concatenando arrays usando spread(...)
const acervoCompleto = [...acervoNaoFiccao, ...acervoFiccao];
// Calcula o número total de livros
const totalLivros = acervoCompleto.length;
//Encontrar o livro com maior número de páginas
// usando reduce(reduz ou condença) todos os itens do array a um único valor
const livroMaisLongo = acervoCompleto.reduce((livroMax, livroAtual) => {
return (livroAtual.paginas > livroMax.paginas) ?
livroAtual : livroMax;
});
// encontrar o livro mais curto
const livroMaisCurto = acervoCompleto.reduce((livroMin, livroAtual) => {
return (livroAtual.paginas < livroMin.paginas) ?
livroAtual : livroMin;
});
console.log("---Estatísticas da Biblioteca");
console.log(`O número total de livros do acervo da Biblioteca é: ${totalLivros} livros`);
console.log(`O livro mais longo do acervo é: "${livroMaisLongo.titulo}" do escritor: ${livroMaisLongo.autor} e ele tem: ${livroMaisLongo.paginas} páginas! e foi publicado no ano de: ${livroMaisLongo.publicaçao}`);
console.log(`O livro mais curto do acervo é: "${livroMaisCurto.titulo}" do escritor: ${livroMaisCurto.autor} e ele tem: ${livroMaisCurto.paginas} páginas! e foi publicado no ano: ${livroMaisCurto.publicaçao}`);
console.log(" Exercício 2");
console.log("===DNA ROBÔ===");
const dnaRobo = ['A', 'C', 'C', 'G', 'T', 'A','C', 'C', 'G', 'T', 'A', 'A'];
const indiceInicio = 3;
const indiceFimExclusivo = 9;
const segmentoAtivação = dnaRobo.slice(indiceInicio, indiceFimExclusivo);
console.log("O DNA do Original do Robô é:", dnaRobo.join(" // "));
console.log(`O DNA de ativação do Robô é: ${segmentoAtivação.join(", ")}`);
console.log(`O segmento de ativação do Robô posui: ${segmentoAtivação.length} bases pseudonitrogenadas.`);
console.log(" Exercício 3");
console.log("===FEIRA MÁGICA===");
const cestoMagico = ['Maçã', 'Banana', 'Laranja', 'Limão', 'Abacaxi'];
console.log("\n ** Cesto Antes da Magia **");
console.log(`Cesto de frutas continha: ${cestoMagico.join(" ~ ")}`);
const frutasTransformadas = cestoMagico.splice(2, 2, "Kiwi", "Pêssego"); // retira dois elemento a partir do índice 2 e coloca Kiwi e Pêssego
console.log(`O cesto mágico após a magia passou a ter: ${cestoMagico.join(" ~ ")}`);
console.log(`As frutas que desapareceram após a magia foram: ${frutasTransformadas.join(" ~ ")}`);
console.log("Exercício 4");
console.log("\n Bem-vindos ao Restaurante Jesus te Chama!");
const menuPrincipal = ['Lasanha', 'Feijoada', 'Macarronada', 'Risoto de Camarão'];
const menuSobremesas = ['Pudim de Leite', 'Sorvete', 'Brigadeiro', 'Torta de Maçã'];
const menuCompleto = menuPrincipal.concat(menuSobremesas);
console.log("***Pratos Principais***");
console.log(menuPrincipal.join(" / "));
console.log("***Sobremesas***");
console.log(menuSobremesas.join(" / "));
console.log("***MENU COMPLETO***");
// .map() percorre o array e transforma cada item em "N. NomeDoItem"
// .join("\n") une todos os itens separando-os por quebras de linha
console.log(menuCompleto.map((item, i) => `${i + 1}. ${item}`).join("\n"));
// Sortea um prato principal e uma sobremesa
const pratoSorteado = menuPrincipal[Math.floor(Math.random() * menuPrincipal.length)];
const sobremesaSorteada = menuSobremesas[Math.floor(Math.random() * menuSobremesas.length)];
console.log(`A Sugestão do Chef é: ${pratoSorteado} + ${sobremesaSorteada}, Boa Apetite!`);