Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Lista de Exercícios 4 a 6

Segue os exercício da maneira com resolvi:

console.log("\n === Exercício 4 ===");
function filtrarNumerosImpares(arr) {
    return arr.filter(num => num % 2 !== 0); // nnúmero dividido por 2 não é zero
}
const numArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20];
const listaNumerosImpares = filtrarNumerosImpares(numArray);
console.log("Array original:", numArray);
console.log(`Os números Ímpares são: ${listaNumerosImpares.join(" , ")}, num total de: ${listaNumerosImpares.length} numeros.`);
console.log("\n === Exercício 5 ===");
const listaNumeros = [0, 2, 4, 5, 6, 15, 20, 25, 30, 36, 45, 49, 58, 64, 81, 90, 100];
function filtrarQuadradosperfeitos(arr) {
    return arr.filter(num => {
        const raiz = Math.sqrt(num) // raiz quadrada(square root(sqr))
        return Number.isInteger(raiz) && num > 20; //  Números que a raiz quadrada sejam números inteiros maires que 20
    })
};
const quadradosPerfeitos = filtrarQuadradosperfeitos(listaNumeros);
console.log(`Estes números da lista são quadrados perfeitos: ${quadradosPerfeitos.join(" , ")} e são: ${quadradosPerfeitos.length} números no total.`);
console.log("\n === Exercício 6 ===");
function calcularTotalMedalhas(paises) {
    return paises.reduce((acumulador, pais) => {
        return acumulador + pais.ouro + pais.prata + pais.bronze;
    }, 0);
}
const quadroMedalhas = [
    {nome: "Brasil", ouro:5, prata:3, bronze:7},
    {nome: "EUA", ouro:12, prata:8, bronze:5},
    {nome: "China", ouro:10, prata:6, bronze:4},
    {nome: "Japão", ouro:4, prata:5, bronze:3},
];
const totalMedalhas = calcularTotalMedalhas(quadroMedalhas);
console.log(" *** QUADRO DE MEDALHAS *** ");
quadroMedalhas.forEach(pais => {
    const totalPais = pais.ouro + pais.prata + pais.bronze;
    console.log(`${pais.nome} - Ouro: ${pais.ouro}, Prata: ${pais.prata}, Bronze: ${pais.bronze} num Total de: ${totalPais} medalhas.`);
});
console.log("\n" + " = ".repeat(30)); // repete 30 sinais de (=)
console.log(` ******    TOTAL DE MEDALHAS DISTRIBUÍDAS: ${totalMedalhas}.   *******`)
console.log(" = ".repeat(30));
// verificar país com maior quantidade de medalha de Ouro
const campeaoOuro = quadroMedalhas.reduce((maior, pais) => {
    return pais.ouro > maior.ouro ? pais : maior; // se true retorna o pais atual e caso contrário retorno o maior anterior
} , {ouro : 0});
console.log(`\n O País com maior quantidade de medalhas de Ouro foi: ${campeaoOuro.nome} com ${campeaoOuro.ouro} medalhas!`);

1 resposta
solução!

Oi, Paulo!

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de como usou filter para ímpares, Number.isInteger(Math.sqrt()) para quadrados perfeitos > 20, e reduce para totalizar medalhas e achar o campeão de ouro. Também ficou claro o uso de join, forEach e template literals para formatar a saída.

Continue firme nos estudos.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!