• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

135
Vistas
Eliminar objetos en JavaScript. Estoy un poco confundido. Tengo un problema con removeName(person)

Estoy un poco confundido con el operador de delete de JavaScript. Soy principiante en JS y tengo un problema con removeName(person) . Tome el siguiente fragmento de código:

 let user = {}; user.name = "name"; export default function removeName (person){ delete user.name; return new Object(person) } removeName(user); console.log(user);

Después de ejecutar este fragmento de código, tomo como salida {} pero quiero la siguiente función

removeName (person) , acepta el objeto de persona como parámetro y modifica el objeto de persona eliminando el campo de nombre de propiedad. LA función no devolverá nada, modificará el objeto directamente.

Estoy un poco confundido porque creo que resuelvo pero no obtengo el resultado que necesito.

almost 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Hay dos grandes diferencias entre las expectativas que ha descrito y su código:

  • eliminas una propiedad de user , que es el mismo objeto que pasas en este caso específico, pero si pasas algo más, tu function actual eliminaría incorrectamente el nombre del user incluso si tuvieras la intención de eliminar el name de otro objeto
  • su función devuelve un valor, mientras que declaró que no es su intención

 let user = {}; user.name = "name"; function removeName (person){ delete person.name; } removeName(user); console.log(user);

almost 3 years ago · Juan Pablo Isaza Denunciar

0

El user y la person son el mismo objeto en el montón (tienen la misma referencia/puntero). Entonces, si desea eliminar la propiedad solo para el objeto de person en función, debe crear una copia de este objeto y eliminarla allí. Si necesita una función para no devolver nada, simplemente eliminando la propiedad de la person , intente esto:

 let user = {}; user.name = "name"; export default function removeName (person){ let copy = Object.assign({}, person); delete copy.name; } removeName(user); console.log(user);
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda