假设我有一个像下面这样的对象:
var Obj = {
a: {
name: 'X',
age: 'Y',
other: {
job: 'P',
location: {
lat: XX.XXXX,
lng: YY.YYYYY,
.........
}
}
}
};
我的目标:我需要一个方法来检查 key
是否存在,并为任何级别的嵌套返回其直接父对象。
示例 如果我搜索 lat
该方法将返回 location
对象,如果我搜索 job
它将返回 other
等等。
请帮忙。 谢谢....
最佳答案
试试这个:
function findObjectWithProperty(obj, term){
if (typeof obj == 'object'
&& Object.prototype.toString.call(obj) !== '[object Array]'){
for(var prop in obj){
if (obj.hasOwnProperty(prop)){
if (prop==term)
return obj;
var result = findObjectWithProperty(obj[prop], term);
if (result != null)
return result;
}
}
}
return null;
}
使用:
var location = findObjectWithProperty(Obj, 'lat');
var other = findObjectWithProperty(Obj, 'job');
关于Javascript 只返回包含特殊属性的父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184859/