If I have an javascript object like this: {a : { b: { c: { ... }}}}
, how can I find if there is an 'x' key in the object and what it's value ?
So long as their is no fear of cyclic references you could do the following
function findX(obj) {
var val = obj['x'];
if (val !== undefined) {
return val;
}
for (var name in obj) {
var result = findX(obj[name]);
if (result !== undefined) {
return result;
}
}
return undefined;
}
Note: This will search for the property 'x' directly in this object or it's prototype chain. If you specifically want to limit the search to this object you can do so doing the following
if (obj.hasOwnProperty('x')) {
return obj['x'];
}
And repeating for pattern for the recursive calls to findX
function hasKey(obj,key){
if(key in obj)
return true;
for(var i in obj)
if(hasKey(obj[i],key))
return true;
return false;
}
ex:
alert(hasKey({a:{b:{c:{d:{e:{f:{g:{h:{i:{}}}}}}}}}},'i'));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With