如果我有一个像这样的javascript对象:{a : { b: { c: { ... }}}}
,我怎样才能找到对象中是否有'x'键及其值?
答案 0 :(得分:8)
只要他们不担心循环引用,您就可以执行以下操作
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;
}
注意:这将直接在此对象或其原型链中搜索属性“x”。如果您特别希望将搜索限制为此对象,则可以执行以下操作
if (obj.hasOwnProperty('x')) {
return obj['x'];
}
重复递归调用findX
答案 1 :(得分:3)
function hasKey(obj,key){
if(key in obj)
return true;
for(var i in obj)
if(hasKey(obj[i],key))
return true;
return false;
}
例如:
alert(hasKey({a:{b:{c:{d:{e:{f:{g:{h:{i:{}}}}}}}}}},'i'));