> Faqs > Eliminar una propiedad determinada de un objeto Javascript

Eliminar una propiedad determinada de un objeto Javascript

Tengo un objeto Javascript asi:

{
  "customer_1": {
    "visible": true
  },
  "customer_6": {
    "visible": true
  },
  "customer_7": {
    "visible": false
  },
  "customer_9": {
    "visible": false
  }
}

En determinado momento hay clientes que desaparen y quiero que también salgan de ese objeto de propiedades.

Me podríais ayudar a hacer una función que recibe un número de cliente y que devuelve ese mismo objeto pero quitándole el elemento que corresponda. Por ejemplo, si recibe "1" quitaría la propiedad "customer_1" de ese objeto.

Respuestas

Aunque es una operación a veces muy básica eso de eliminar propiedades es a veces desconocida... te paso la instrucción que necesitas que es realmente sencilla.

let objeto = {
    // aquí todo el contenido de tu objeto
}
delete objeto['customer_1'];

Hacer una función en JavaScript que elimine la propiedad del objeto basándose en el número que recibe sería prácticamente inmediato, como podrás entender ahora, no requiere algoritmo alguno.

function removeCustomer(object, index) {
    const keyToRemove = `customer_${index}`;
    delete object[keyToRemove];
    return object;
}

En este ejemplo, removeCustomer es la función que toma el objeto object y un número index. Dentro de la función, se construye la clave que se desea eliminar (customer_1 si pasaste 1 como segundo parámetro) usando una plantilla de string. Luego, se utiliza el operador delete para eliminar esa propiedad del objeto.

Ten en cuenta que esta función modifica el objeto original!! si deseas mantener el objeto original intacto, deberías crear un clonado del del objeto antes de eliminar la propiedad.

Sergio
361 11 31 13