javascript - 获取对象中元素的路径,而不循环遍历所有元素(第二层次结构级别未知)

标签 javascript loops object

我有以下对象:

var oBadge = {
    COMMENT_CREATED: {  
        FIRST_COMMENT_CREATED: {
            code: "FIRST_COMMENT_CREATED", 
            src: "",
            name: "Socializer",
            text: "Create a comment for an idea",
            condition: {
                today: null,
                over_all: 1
            }
        }
    }
};

我需要检查我得到的字符串(例如“FIRST_COMMENT_CREATED”)是否包含在 oBadge 模型中。 该对象包含更多元素 - 不仅仅是 comment_created 元素。因此我无法定义在那里检查它。

我找到了以下函数来确定该元素是否包含在对象内,但我还需要包含的数据,而不仅仅是声明是否包含它。

oBadge.hasOwnProperty("FIRST_COMMENT_CREATED")

我基本上寻找的是一种跳过支票上第二个层次结构级别的方法 - 例如:

if(oBadge.[<all>]["FIRST_COMMENT_CREATED"] !== undefined) {
    // return data
}

最佳答案

如果不循环对象,就无法跳过层次结构,您应该使用 for...in 循环:

for (var prop in oBadge) {
    if(oBadge[prop].hasOwnProperty("FIRST_COMMENT_CREATED"))    {
        // return data
    }
}

关于javascript - 获取对象中元素的路径,而不循环遍历所有元素(第二层次结构级别未知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698779/

相关文章:

javascript - 处理 Javascript 日期的时区

javascript - 使用 MDN 绑定(bind) polyfill 是否存在风险?

c - 在 C 编程中,如何一次从数据文件中读取一行并在移动到下一行之前在其中执行计算?

c# - List.Contains 对象比较失败

javascript - JQuery removeClass 不工作自己

javascript - 图片上传前预览时通过id获取图片

python - 如何在不初始化列表的情况下附加到字典中的 Python 列表?

python - 如何找到所有可能的方法将字符串划分为 n 个切片而无需递归?

c++ - 成员类之间的正确通信方式是什么?

javascript - JSON 数据转换为数据集