Función de JavaScript para Comprobar si un Objeto Tiene una Clave
Para comprobar si un valor objetivo existe en un objeto de JavaScript, utiliza la función hasKey
.
La función toma dos argumentos: obj
, el objeto JSON en el que se realizará la búsqueda, y keys
, una matriz de claves a comprobar. Estos son los pasos para comprobar si el objeto tiene la clave(s) dada(s):
- Comprueba si la matriz
keys
no está vacía. Si está vacía, devuelve false
.
- Utiliza el método
Array.prototype.every()
para iterar sobre la matriz keys
y comprobar secuencialmente cada clave hasta la profundidad interna del obj
.
- Utiliza el método
Object.prototype.hasOwnProperty()
para comprobar si obj
no tiene la clave actual o no es un objeto. Si cualquiera de estas condiciones es verdadera, detén la propagación y devuelve false
.
- En caso contrario, asigna el valor de la clave a
obj
para usarlo en la siguiente iteración.
- Si se ha iterado correctamente sobre la matriz
keys
, devuelve true
.
Aquí está el código de la función hasKey
:
const hasKey = (obj, keys) => {
return (
keys.length > 0 &&
keys.every((key) => {
if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
obj = obj[key];
return true;
})
);
};
Aquí hay algunos ejemplos de cómo utilizar la función hasKey
:
let obj = {
a: 1,
b: { c: 4 },
"b.d": 5
};
hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false