Oi, Robert! Como vai?
Obrigada por compartilhar sua dúvida com a comunidade Alura.
Se dois dos três CPFs deram resultado diferente, pode ter sido por algum desses pontos no seu código:
1. Formato do CPFSe não removeu pontos e traços (.
e -
), o cálculo pode ter usado caracteres inválidos. Use replace(/\D/g, '')
para limpar a string.
2. Multiplicação com stringsVerifique se cpf[tamanho]
está sendo convertido para número antes da multiplicação. Se não estiver, pode gerar NaN
.
3. Regra do "0"Se o resultado for 10 ou 11, ele deve virar 0. Confirme se você tem isso no código:
if (soma == 10 || soma == 11) {
soma = 0;
}
4. Ordem dos multiplicadores
O primeiro dígito usa pesos de 10 a 2, e o segundo de 11 a 2. Começar do peso errado altera tudo.
Se ainda assim não encontrar o erro, pode compartilhar seu código com a gente por aqui. A gente te ajuda a revisar.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado