Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

CREIO QUE A RESPOSTA CORRETA ESTÁ ERRADA

Como podem observar na linha de número 6, o for está sem o primeiro parametro que seria 'contador'

function checaDigitoVerificadorCPF(cpf, multiplicador) {
    let soma = 0
    let contador = 0
    const cpfSemDigitos = cpf.substr(0, multiplicador - 1).split('')
    const digitoVerificador = cpf.charAt(multiplicador - 1)
    for(; multiplicador > 1 ; multiplicador--) {
        soma = soma + cpfSemDigitos[contador] * multiplicador
        contador++
    }

    if(soma % 11 > 9) {
        return digitoVerificador == 0
    }

    return digitoVerificador == 11 - (soma % 11)
}

O correto seria assim:

function checaDigitoVerificadorCPF(cpf, multiplicador) {
    let soma = 0
    let contador = 0
    const cpfSemDigitos = cpf.substr(0, multiplicador - 1).split('')
    const digitoVerificador = cpf.charAt(multiplicador - 1)
    for(contador; multiplicador > 1 ; multiplicador--) {
        soma = soma + cpfSemDigitos[contador] * multiplicador
        contador++
    }

    if(soma % 11 > 9) {
        return digitoVerificador == 0
    }

    return digitoVerificador == 11 - (soma % 11)
}
2 respostas
solução!

Fala Gabriel, tudo bem? Espero que sim :D

Então, esse primeiro argumento não é passado pois iremos utilizar a variavel contador que declaramos ali em cima:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém você pode sim fazer do jeito que está fazendo, mas lembre-se de apagar a variável criada anteriormente.

Espero ter ajudado, bons estudos :D

Obrigado pela resposta Matheus !

Só não sabia que tinha como usar um for sem os 3 paramentros.

Brigadão man !