1.1 KiB
1.1 KiB
title, tags, author, cover, firstSeen, lastUpdated
| title | tags | author | cover | firstSeen | lastUpdated |
|---|---|---|---|---|---|
| Check if object has key | object | chalarangelo | cloudy-mountaintop | 2019-10-15T15:45:13+03:00 | 2020-10-19T22:49:51+03:00 |
Checks if the target value exists in a JSON object.
- Check if
keysis non-empty and useArray.prototype.every()to sequentially check its keys to internal depth of the object,obj. - Use
Object.prototype.hasOwnProperty()to check ifobjdoes not have the current key or is not an object, stop propagation and returnfalse. - Otherwise assign the key's value to
objto use on the next iteration. - Return
falsebeforehand 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