Objetos no JavaScript são usados em muitas situações e todos sabemos como adicionar novas propriedades e valores para os objetos existentes.
No entanto, algo que eu demorei para aprender foi como de fato remover uma propriedade de um objetivo JavaScript.
Nesse breve artigo vou te apresentar duas maneiras de fazer esse procedimento, cada uma com seu melhor momento de aplicação.
Deletar propriedade do objeto JavaScript
A primeira solução para remover uma propriedade do objeto JS é com o uso de uma declaração chamada delete
.
Suponhamos que temos o seguinte objeto:
let meuObjeto = {
"propriedade1": "valor1",
"propriedade2": "valor2",
"propriedade3": "valor3"
}
Para deletar de forma simples um desses itens do objeto, podemos fazer o seguinte:
delete meuObjeto.propriedade3
// Resultado:
// let meuObjeto = {
// "propriedade1": "valor1",
// "propriedade2": "valor2"
// }
Quando você executa esse comando ele retornará true
para a operação bem-sucedida e false
quando não conseguir deletar a propriedade.
Essa é uma forma bem simples e fácil, não é? Porém, ela tem um problema. Ela não é um tanto quanto lenta em sua execução. Inclusive, se quiser entender mais a fundo essa questão, sugiro esse artigo.
Quando precisamos executar a operação de deletar a propriedade do objeto no JavaScript dentro de um loop, por exemplo, então talvez seja melhor usar outra maneira de obter um resultado semelhante.
Colocar o valor da propriedade como undefined
ou ""
Como alternativa em um momento que estamos buscando um código que roda mais rápido, o que podemos fazer é abrir mão de excluir completamente a propriedade e simplesmente deixar seu valor como undefined
ou ""
.
Dependendo da situação, só isso já será suficiente, então vamos ver como funciona.
Vamos usar o mesmo objeto do exemplo acima:
let meuObjeto = {
"propriedade1": "valor1",
"propriedade2": "valor2",
"propriedade3": "valor3"
}
No entanto, agora vamos declarar o valor de propriedade3
para undefined
.
meuObjeto.propriedade3 = undefined;
// ou meuObjeto.propriedade3 = "";
// Resultado:
// let meuObjeto = {
// "propriedade1": "valor1",
// "propriedade2": "valor2",
// "propriedade3": undefined
// }
Essa ação é interessante pois agiliza a execução do código. Mas, como tudo tem um lado bom e ruim, nesse caso você não elimita da memória a variável. Então se você está lidando com um número grande de itens na memória em sua aplicação pode ser que não consiga fazer a limpeza necessária por meio desse tipo de operação. Já a operação com delete
elimina da memória.
Outra questão que é interessante observar é que JavaScript aceita Polimorfismo, então você pode ter uma Array contendo apenas strings e aí fazer uma operação que muda uma delas para um número.
Por mais que isso seja legal, você acaba tendo uma Array que é ineficiente e lenta.
Por isso, tenha em mente também a utilização desse método de remover propriedades para que evite polimorfismo quando possível. Se tem uma Array de strings, mude para ""
. Se tiver uma de números, mude para 0
. Por aí vai.
Conclusão
Nesse artigo comentei algumas maneiras que podemos utilizar para remover ou deletar uma propriedade de um objeto no JavaScript.
Espero que tenha gostado e caso tenha dúvidas é só deixar nos comentários abaixo.
Divirta-se!