Hola a todos, estoy tratando de escribir una función que acepte el nombre de la propiedad como argumento y lo elimine. Pero quiero hacerlo dinámicamente para poder cambiarlo cuando quiera con otras propiedades, pero parece que no puedo hacerlo. La ayuda es muy apreciada.
const student = { names: "David Rayy", sclass: "VI", rollno: 12, deleteProperty(property) { console.log(property) delete property console.log(student) }, } student.deleteProperty(this.rollno)
como eso ?
const student = { names : 'David Rayy' , sclass : 'VI' , rollno : 12 , deleteProperty(property) { console.log('delete ->', property) delete this[property] console.log(this) } } student.deleteProperty('rollno')
Debería pasar una cadena como argumento a la función para que pueda usarse como el nombre de la propiedad.
const student = { name: 'David Rayy', sclass: 'VI', rollno: 12, deleteProperty(property) { delete this[property]; } } student.deleteProperty('rollno'); console.log(` Name: ${student.name}, Class: ${student.sclass}, Rollno: ${student.rollno} `);
JS moderno se inclina hacia el uso de clases . Entonces, una solución alternativa podría ser crear una clase Student que acepte algunos argumentos y tenga un método deleteProperty
. Luego cree una nueva instancia de estudiante con esos datos y luego puede eliminar la propiedad que desee.
class Student { constructor(name, sClass, rollNo) { this.name = name; this.sClass = sClass; this.rollNo = rollNo; } deleteProperty(property) { delete this[property]; return this; } print() { console.log(this); } } const student = new Student('David', 'VI', 12); student.print(); student.deleteProperty('rollNo').print();