Avatar ·

Como remover uma propriedade de um objeto JavaScript? (delete, spread e outras formas)

Olá a todos! Comecei a estudar JavaScript recentemente e me deparei com um problema. Tenho um objeto que contém dados do usuário: ```javascript const user = { name: 'Alexey', age: 30, email: 'alex@example.com', password: 'secret123', role: 'admin' }; ``` Preciso remover a propriedade `password` deste objeto antes de enviar os dados para o cliente (para não expor a senha). Tentei atribuir `undefined`: ```javascript user.password = undefined; ``` Mas isso não remove a propriedade — ela apenas se torna `undefined`. Ao serializar em JSON (JSON.stringify) ela desaparece, mas no próprio objeto a chave permanece. E se eu percorrer o objeto com `for...in`, o `password` ainda aparece. Ouvi falar sobre o operador `delete`, mas me preocupa que alguns digam que ele é lento e não recomendado. Também vi em algum lugar a sintaxe com spread operator para criar um novo objeto sem a propriedade. Qual é a forma correta e por quê? Por favor, me ajudem.