有没有办法访问对象文字的名称?
Is there a way to access an object literal's name?
我有一个对象:
var Top = {
'A':{},
'b':{
'1':'someText',
'2':'someMoreText'},
'C':{
'3':'evenMoreText',
'4':'thisIsGettingRedundant'},
'D':'thisOneIsDifferent'}
我正在寻找一种方法来访问我的对象的名称,例如 Top[b].objectName
将 return '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);
}
}
我想我可以为每个对象添加一个标签以获取它们的名称(即将 A 从 {} 更改为 'Top'),但这对我来说似乎是多余的。
-编辑:
有没有办法记录我的二级对象名称 IE。甲、乙、丙?因为它们应该记录为数据而不是代码
const Top = {
'A': {},
'b': {
'1': 'someText',
'2': 'someMoreText'
},
'C': {
'3': 'evenMoreText',
'4': 'thisIsGettingRedundant'
},
'D': 'thisOneIsDifferent'
};
要实现这一点,请使用 for-in-loop 在顶层遍历所有键。如果键指向一个对象并且不等于 null
(定义为 JavaScript 中的对象),则执行另一个 for-in-loop 以将每个项目记录到控制台中。如果顶级键指向空对象,则将空的弯曲括号记录到控制台。另一方面,如果顶级键指向非对象,则将其记录到控制台。
for(let key in Top) {
if(typeof Top[key] === 'object' && Top[key] !== null) {
for(let item in Top[key]) {
console.log(`Grabbing ${Top[key][item]} from '${item}' within '${key}' in Top.`);
}
if(Object.keys(Top[key]).length === 0) {
console.log(`Grabbing {} from '${key}' in Top.`);
}
} else {
console.log(`Grabbing ${Top[key]} from '${key}' in Top.`);
}
}
我有一个对象:
var Top = {
'A':{},
'b':{
'1':'someText',
'2':'someMoreText'},
'C':{
'3':'evenMoreText',
'4':'thisIsGettingRedundant'},
'D':'thisOneIsDifferent'}
我正在寻找一种方法来访问我的对象的名称,例如 Top[b].objectName
将 return '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);
}
}
我想我可以为每个对象添加一个标签以获取它们的名称(即将 A 从 {} 更改为 'Top'),但这对我来说似乎是多余的。
-编辑:
有没有办法记录我的二级对象名称 IE。甲、乙、丙?因为它们应该记录为数据而不是代码
const Top = {
'A': {},
'b': {
'1': 'someText',
'2': 'someMoreText'
},
'C': {
'3': 'evenMoreText',
'4': 'thisIsGettingRedundant'
},
'D': 'thisOneIsDifferent'
};
要实现这一点,请使用 for-in-loop 在顶层遍历所有键。如果键指向一个对象并且不等于 null
(定义为 JavaScript 中的对象),则执行另一个 for-in-loop 以将每个项目记录到控制台中。如果顶级键指向空对象,则将空的弯曲括号记录到控制台。另一方面,如果顶级键指向非对象,则将其记录到控制台。
for(let key in Top) {
if(typeof Top[key] === 'object' && Top[key] !== null) {
for(let item in Top[key]) {
console.log(`Grabbing ${Top[key][item]} from '${item}' within '${key}' in Top.`);
}
if(Object.keys(Top[key]).length === 0) {
console.log(`Grabbing {} from '${key}' in Top.`);
}
} else {
console.log(`Grabbing ${Top[key]} from '${key}' in Top.`);
}
}