Javascript 只返回包含特殊属性的父对象

标签 javascript jquery javascript-objects

假设我有一个像下面这样的对象:

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/

相关文章:

javascript - 如何获得星级评定的值(value),jQuery

jquery - 使用jquery获取类名

javascript - 迭代嵌套对象并使用 Lodash 连接到字符串

javascript - 调整可见性时 div 元素闪烁

javascript - python 的 json.dumps 输出对 javascript 安全吗?

javascript - HTML5音频的多个实例-我只需要一个实例就可以随时播放

jquery - Kendo UI窗口关闭事件: prevent window close

jquery - Jquery 中的 Mechanize

javascript - 从 promise 导出数组,但在另一个文件需要时不加载?

javascript - javascript 字符串中后跟小写字母的反斜杠破坏了字符串