Check if object has key
JavaScript, Object · Oct 19, 2020

Checks if the target value exists in a JSON object.
- Check if
keys
is non-empty and useArray.prototype.every()
to sequentially check its keys to internal depth of the object,obj
. - Use
Object.prototype.hasOwnProperty()
to check ifobj
does not have the current key or is not an object, stop propagation and returnfalse
. - Otherwise assign the key's value to
obj
to use on the next iteration. - Return
false
beforehand if given key list is empty.
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;
})
);
};
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
Written by Angelos Chalaris
I'm Angelos Chalaris, a JavaScript software engineer, based in Athens, Greece. The best snippets from my coding adventures are published here to help others learn to code.
If you want to keep in touch, follow me on GitHub.