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