Eu havia feito o algoritmo de validação de outra forma ( ele falou sobre a logica necessária no vídeo 3 então decidi tentar implementar por conta própria e me desafiar )
function checaEstruturaCPF(cpf){
if(checaDigitoVerificador(cpf, 10) && checaDigitoVerificador(cpf, 11)){
return true
}else{
return false;
}
}
function checaDigitoVerificador(cpf,multiplicador){
let soma=0;
for (let index = 0; index < multiplicador-1; index++) {
soma+=((multiplicador-index)*Number(cpf[index]))
}
return somaDigitoVerificador(soma)==cpf[multiplicador-1];
}
function somaDigitoVerificador(soma){
return 11-(soma%11)
}
E para o meu cpf ou cpfs que o resto retornado por somaDigitoVerificador fosse 10 dava erro ( porque 10 não é igual 0 ). Então achando que o erro tivesse no meu algoritmo, fui na aula 5 e baixei o projeto realizado pelo professor, testei meu cpf e novamente constando como invalido. Resolvi colocando mais uma operação (11-(soma%11))%10
( para que caso de 10 retorne 0) ( contudo não sei se essa é uma logica valida , só sei que meu cpf é valido e testado em outros sites também consta como valido )
Gostaria de saber se isso so ocorreu comigo e se o algoritmo implementado na aula esta realmente correto