有没有办法访问对象文字的名称?

时间:2017-06-26 16:20:40

标签: javascript object-literal for-in-loop

我有一个对象:

var Top = {
    'A':{},
    'b':{
        '1':'someText',
        '2':'someMoreText'},
    'C':{
        '3':'evenMoreText',
        '4':'thisIsGettingRedundant'},
    'D':'thisOneIsDifferent'}

我正在寻找一种方法来访问我的对象的名称,比如Top[b].objectName'Top'作为字符串返回,我在一些嵌套的for ... in循环中这样做,就像这样:

for(thing in Top){
    for(piece in Top[thing]){
        console.log('Grabbing ' + Top[thing][piece] + ' from ' + MY_OBJECT_NAME_THAT_SHOULD_BE_TOP);
    }
}

我想我可以为每个对象添加一个标签作为其名称(IE。将A从{}更改为' Top'),但这对我来说似乎是多余的。

- 编辑:

有没有办法记录我的第二级对象名称IE。 A,B,C?因为它们应该被记录为数据而不是代码

1 个答案:

答案 0 :(得分:0)

awk

要实现这一点,请使用for-in-loop迭代顶层的所有键。如果键指向对象且不等于const Top = { 'A': {}, 'b': { '1': 'someText', '2': 'someMoreText' }, 'C': { '3': 'evenMoreText', '4': 'thisIsGettingRedundant' }, 'D': 'thisOneIsDifferent' }; (在JavaScript中定义为对象),请执行另一个for-in-loop以将每个项目记录到控制台中。如果顶级键指向空对象,请将空曲线括号记录到控制台。另一方面,如果顶级键指向非对象,则将其记录到控制台。

null