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

[Projeto] Respostas desafios funções e listas, do 2 ao 6.

//desafio 2

function calculandoFatorial(numero) {
    if (numero === 1 || numero === 0) {
        return 1;
    }
    let fatorial = 1;
    for (let i = 2; i <= numero; i++) {
        fatorial *= i;
    }
    return fatorial;
}

let numero = 5;
let resultado = calculandoFatorial(numero);
console.log(`O fatorial de ${numero} é igual a ${resultado}!`);
//desafio 3

function convertor(valorDolar) {
    let cotacaoDolar = 4.80;
    let valorEmReais = valorDolar * cotacaoDolar;
    return valorEmReais.toFixed(2);
}

let valorDolar = 12;
let resultadoDaConversao = convertor(valorDolar);
console.log(`${valorDolar} dolares equivale há R$ ${resultadoDaConversao}`);

Nos desafios 4 e 5, eu manipulei o HTML, pra mostrar o resultado, depois vi que no gabarito estava mostrando na tela através do console.log, acho que assim ficou melhor:

//desafio 4

function calculandoAreaEPerimetroRetangulo(altura, largura) {
    let area = altura * largura;
    let perimetro = 2 * (altura + largura);
    let mostrandoResultado = document.querySelector('h2');
    mostrandoResultado.innerHTML = `A área da sala é ${area}, e o perimetro é ${perimetro}.`;
}

let altura = 5;
let largura = 20;
calculandoAreaEPerimetroRetangulo(altura, largura);

// desafio 5

function calculandoAreaEPerimetroCirculo(raio) {
    let areaCirculo = (Math.PI * (raio * raio)).toFixed(2);
    let perimetroCirculo = (2 * Math.PI * raio).toFixed(2);
    let mostrandoNaTela = document.querySelector('h2');
    mostrandoNaTela.innerHTML = `A área do círculo é ${areaCirculo}, e o perímetro é ${perimetroCirculo}.`;
}

let raio = 12;
calculandoAreaEPerimetroCirculo(raio);

No desafio da tabuada tentei fazer o mesmo com a tag (h2), mas percebi que só aparecia a ultima multiplicação, e voltei pro console.log:

//desafio 6 

function tabuada (number) {
    for (let mult= 1; mult <= 10; mult++){
        let calculando = number * mult;
        console.log (`${number} x ${mult} = ${calculando}.`);
    }
}

let number = 2;
tabuada (number);

Inclusive queria saber por que não deu certo, e não apareceu todos os cálculos usando manipulando o HTML no desafio 6, alguem consegue me explicar?

1 resposta
solução!

Oi Alexandre,

Excelente trabalho nos desafios! 👍

Vejo que você explorou bem as funções e listas, e ainda foi além, experimentando a manipulação do HTML.

Sobre o desafio 6, o problema de não aparecer todos os cálculos ao usar innerHTML é que a cada iteração do loop, você estava sobrescrevendo o conteúdo do elemento h2. O innerHTML substitui todo o conteúdo existente, e não adiciona novos elementos. Para adicionar vários resultados, você precisaria concatenar os resultados em uma string e depois atribuir essa string ao innerHTML ou criar elementos HTML dinamicamente.

Uma forma de resolver isso seria:

function tabuada (number) {
    let resultadoTabuada = '';
    for (let mult= 1; mult <= 10; mult++){
        let calculando = number * mult;
        resultadoTabuada += `${number} x ${mult} = ${calculando}. <br>`;
    }
    let mostrandoNaTela = document.querySelector('h2');
    mostrandoNaTela.innerHTML = resultadoTabuada;
}

let number = 2;
tabuada (number);

Nesse exemplo, a cada iteração, adicionamos o resultado da multiplicação à variável resultadoTabuada, concatenando com <br> para quebrar a linha no HTML. No final, atribuímos o valor de resultadoTabuada ao innerHTML do elemento h2.

Continue praticando e explorando as possibilidades! 🤔

Para saber mais: Manipulação do DOM com JavaScript - Explore a documentação da Mozilla sobre como manipular o DOM (Document Object Model) com JavaScript.

A persistência é o caminho para o sucesso! 💪