1
resposta

[Dúvida] Queria saber o porquê.

Por que no curso "JavaScript: validando formulários/ capítulo 4/ aula 7" vocês repetem código? Existe alguma vantagem para essa situação???

Pois vejo que fizeram: const camposDoFormulario = document.querySelectorAll('[required]'); const formulario = document.querySelector('[data-formulario]');

formulario.addEventListener("submit", (e) => { e.preventDefault();

const listaRespostas = {
    "nome": e.target.elements["nome"].value,
    "email": e.target.elements["email"].value,
    "rg": e.target.elements["rg"].value,
    "cpf": e.target.elements["cpf"].value,
    "aniversario": e.target.elements["aniversario"].value,
};
localStorage.setItem("cadastro", JSON.stringify(listaRespostas));

window.location.href = "./abrir-conta-form-2.html";

});

Me pergunto se não seria melhor se fizessem:

formulario.addEventListener("submit", e => { e.preventDefault();

const listaRespostas = {};
const campos = e.target.elements;

for(let i = 0; i < campos.length; i++){
    const campo = campos[i];
    if(campo.name){
        listaRespostas[campo.name] = campo.value; // coloca nome: e o que o cliente digitou
    }
}
localStorage.setItem("respostas", JSON.stringify(listaRespostas));

});

Gostaria de considerar a repetição de código do curso, mas preciso de ajuda para enxergar vantagens nisso. Creio que ao fazermos estático ao invés de dinâmico corremos o risco de gerar mais erros.

1 resposta

Olá, Marcos!

Sua pergunta é muito relevante e mostra que você está pensando criticamente sobre a estrutura do código, o que é ótimo!

A repetição de código que você mencionou no curso "JavaScript: validando formulários" pode ser vista como uma desvantagem em termos de eficiência e manutenção do código, pois, como você mencionou, a abordagem estática pode levar a mais erros, especialmente se o formulário for alterado no futuro.

No entanto, a vantagem dessa abordagem é que ela é mais explícita e fácil de entender para quem está aprendendo. Cada campo é claramente definido e o valor é atribuído de forma direta. Isso pode ser útil para pessoas que estão começando a aprender JavaScript e ainda não estão familiarizadas com loops ou a manipulação dinâmica de objetos.

Mas caso prefira, continue a usar um loop para iterar sobre os campos do formulário e adicionar os valores a um objeto é uma abordagem mais eficiente e escalável. Isso é especialmente útil para formulários maiores, onde a repetição de código se tornaria problemática, mas em um ambiente de produção, a abordagem dinâmica seria geralmente preferida, mas em um ambiente de aprendizado, a abordagem estática pode ser mais acessível para alguns estudantes.

No mundo da programação, é normal termos diferentes formas de se chegar ao mesmo resultado. Nesse primeiro momento, é válido deixar o código mais extenso, mas a sua obervação é muito inteligente, e muito consciente.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!