如果我有一个像这样的javascript对象:{a : { b: { c: { ... }}}},如何找到对象中是否有"x"键及其值是多少?
只要他们不担心循环引用,您就可以执行以下操作
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;
}
Run Code Online (Sandbox Code Playgroud)
注意:这将直接在此对象或其原型链中搜索属性"x".如果您特别希望将搜索限制为此对象,则可以执行以下操作
if (obj.hasOwnProperty('x')) {
return obj['x'];
}
Run Code Online (Sandbox Code Playgroud)
并重复递归调用的模式 findX