json-fetchfy
Version:
A lightweight Node.js module to fetch, validate, and manipulate JSON data from various sources seamlessly.
27 lines (24 loc) • 871 B
JavaScript
/**
* Extiende el prototipo de los objetos para incluir el método removeKeys.
* Elimina las claves especificadas de un objeto y sus objetos anidados de manera recursiva.
*
* @param {Array} keysToRemove - Un array con las claves a eliminar.
* @returns {Object} El objeto sin las claves especificadas.
*/
Object.prototype.removeKeys = function (keysToRemove = []) {
// Si el objeto no es un objeto, retornamos tal cual
if (typeof this !== "object" || this === null) {
return this;
}
// Recorremos cada propiedad del objeto
Object.keys(this).forEach((key) => {
// Si la clave está en la lista de claves a eliminar, la eliminamos
if (keysToRemove.includes(key)) {
delete this[key];
} else {
// Si es un objeto anidado, llamamos recursivamente
this[key] = this[key].removeKeys(keysToRemove);
}
});
return this;
};