flysmog.pages.dev

Como validar CPF em array de objetos JavaScript?

Validar CPFs em um array de objetos é uma tarefa comum em sistemas que processam dados de usuários. Com um método eficiente, você pode garantir a integridade dos dados e evitar erros de processamento. A abordagem apresentada aqui utiliza uma função pura e reutilizável, ideal para aplicações modernas.

Pré-requisitos

Passo 1: Função para validar CPF

Crie uma função que receba um CPF como string e retorne true se for válido, false caso contrário. A função deve remover caracteres não numéricos e aplicar o algoritmo de validação dos dígitos verificadores.

function validarCPF(cpf) {
    cpf = cpf.replace(/[^\d]/g, '');
    if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false;
    let soma = 0;
    for (let i = 0; i < 9; i++) {
        soma += parseInt(cpf.charAt(i)) * (10 - i);
    }
    let resto = (soma * 10) % 11;
    if (resto === 10 || resto === 11) resto = 0;
    if (resto !== parseInt(cpf.charAt(9))) return false;
    soma = 0;
    for (let i = 0; i < 10; i++) {
        soma += parseInt(cpf.charAt(i)) * (11 - i);
    }
    resto = (soma * 10) % 11;
    if (resto === 10 || resto === 11) resto = 0;
    return resto === parseInt(cpf.charAt(10));
}

Passo 2: Aplicar validação em array de objetos

Com a função de validação pronta, use o método map para adicionar um campo de validação a cada objeto do array. Isso mantém os dados originais intactos e adiciona a informação de forma não destrutiva.

const usuarios = [
    { nome: 'João Silva', cpf: '123.456.789-09' },
    { nome: 'Maria Santos', cpf: '111.111.111-11' },
    { nome: 'Pedro Costa', cpf: '529.982.247-25' }
];

const usuariosValidados = usuarios.map(usuario => ({
    ...usuario,
    cpfValido: validarCPF(usuario.cpf)
}));

console.log(usuariosValidados);

Exemplo Prático

Nome CPF CPF Válido?
João Silva 123.456.789-09 false
Maria Santos 111.111.111-11 false
Pedro Costa 529.982.247-25 true

Passo 3: Filtrar apenas CPFs válidos

Se necessário, filtre o array para obter apenas os objetos com CPF válido. Use o método filter em conjunto com a função de validação.

const usuariosComCPFValido = usuarios.filter(usuario => validarCPF(usuario.cpf));
console.log(usuariosComCPFValido);

Conclusão

Com este método, você automatiza a validação de CPFs em arrays de objetos JavaScript de forma rápida e confiável. A função pura e os métodos nativos do JavaScript garantem performance e legibilidade, evitando erros manuais e facilitando a manutenção do código.