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

[Sugestão] Alternativa de validação de dígito: uma única função para os dois dígitos

Olá! Para aqueles que também gostam de exercitar a lógica, segue uma alternativa de como utilizar o código de validar dígito de forma unificada, sem precisar criar uma função para cada dígito:

function validaDigito(cpf, posDig) {
    if (posDig != 1 && posDig != 2) {
        throw new Error("Digite uma posição de dígito válida: 1 ou 2")
    }
    let soma = 0
    let multiplicador = 9+posDig

    for(let tamanho = 0; tamanho < 8+posDig; tamanho++) {
        soma += cpf[tamanho] * multiplicador
        multiplicador--
    }

    soma = (soma * 10) % 11

    if (soma == 10 || soma == 11) {
        soma = 0
    }

    return soma != cpf[8+posDig]
}

Sua utilização é bem simples:

// Primeiro digito:
validaDigito(cpf, 1)
// Segundo digito:
validaDigito(cpf, 2)
1 resposta
solução!

Oii, tudo bem?

Essa é uma excelente sugestão, Vinícius! Consolidar a validação dos dois dígitos do CPF em uma única função torna o código mais conciso e mais fácil de manter.

Obrigada por compartilhar suas ideias e percepções conosco! Sua contribuição é fundamental para o crescimento da nossa comunidade na Alura. Continue empenhado e não hesite em retornar ao fórum sempre que tiver dúvidas ou quiser compartilhar mais insights.

Um abraço e bons estudos.