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

Multiplicação e Divisão - JavaScript

Olá. Estou querendo que a minha tabela me de o resultado do 13 dos empregados. Porém todas as formas que já tentei (fazendo o cálculo direto na variável ou criando uma função a parte) deram errado. Sempre aparece NaN ao invés do resultado.

O meu código no html é o seguinte:

        <table id="empregados">
            <thead>
                <tr>
                    <th>Empregados</th>
                    <th>Salário Mensal</th>
                    <th>Meses trabalhados no ano</th>
                    <th>A pagar 13</th>
                </tr>
            </thead>
            <tbody>
                <tr class="empregado">
                    <td class="empregado-nome">João</td>
                    <td class="empregado-salario">1.200,00</td>
                    <td class="empregado-mes">5</td>
                    <td class="empregado-pg">0</td>
                </tr>
                <tr class="empregado">
                    <td class="empregado-nome">Joaquina</td>
                    <td class="empregado-salario">1.359,00</td>
                    <td class="empregado-mes">3</td>
                    <td class="empregado-pg">0</td>
                </tr>
            </tbody>
        </table>

E no script é este:

var trEmpregados = document.querySelectorAll(".empregado");

for(var i = 0; i < trEmpregados.length; i++){
    var empregado = trEmpregados[i];

    var SalarioDoEmpregado = empregado.querySelector(".empregado-salario");
    var salario = SalarioDoEmpregado.textContent;
    console.log(salario);

    var MesDoEmpregado = empregado.querySelector(".empregado-mes");
    var mes = MesDoEmpregado.textContent;
    console.log(mes);

    var apagar = (salario / 12) * mes;
    console.log(apagar);
    var aPagarAoEmpregado = empregado.querySelector(".empregado-pg");
    aPagarAoEmpregado.textContent = CalculaDec(salario,mes);       
}

function CalculaDec(salario,mes) {
    var apagar = 0;

    apagar = (salario / 12) * mes;

    return apagar;    
}

No lugar do cálculo já fiz testes como, mostrar apenas o salário, mostrar apenas o mês, e ambos dão certos. Da mesma forma que já coloquei 2+2 e na tabela me deu o resultado de 4, bem certinho. Mas quando faço o cálculo das variáveis, não funciona.

O cálculo que desejo fazer é: (salário / 12) * mes. Que corresponde à: o salário mensal do empregado, dividido por 12 meses (o ano), e então multiplicado pela quantidade de meses que o empregado esta trabalho. É um cálculo bem simples, mas não da certo.

Já o exercício que havia feito do IMC durante o curso, deu certo. Seria a mesma lógica, mas né...

1 resposta
solução!

Graziela, boa tarde!

Você fez as operações corretamente, o detalhe é que quando você pede textContent de algum elemento o retorno dele é uma string, quando você tentar fazer uma operação com uma string ele irá retornar um NaN(Not a Number). Transformando o texto recebido do textContent com um parseInt(), você será capaz de fazer o cálculo normalmente, agora com o tipo de dado correto

var apagar = (parseInt(salario) / 12) * parseInt(mes);

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software