获取javascript中的变量名

获取javascript中的变量名,javascript,arrays,variables,Javascript,Arrays,Variables,我有一个名为main的对象,它的一个项data:指向一个定义为子菜单项的数组。当用户单击某个内容时,UI将更新为子菜单项中的数组项。它还更新顶栏以显示当前菜单的标题,该标题基本上是变量名子菜单项 有人能告诉我如何获得子菜单项variable namedata:“-->this吗 let submenuItems = ["subMenu 1","subMenu 2","subMenu 3","subMenu 4","subMenu 5","subMenu 6"]; let main = {

我有一个名为main的对象,它的一个项data:指向一个定义为子菜单项的数组。当用户单击某个内容时,UI将更新为子菜单项中的数组项。它还更新顶栏以显示当前菜单的标题,该标题基本上是变量名子菜单项

有人能告诉我如何获得子菜单项variable namedata:“-->this吗

let submenuItems = ["subMenu 1","subMenu 2","subMenu 3","subMenu 4","subMenu 5","subMenu 6"];

let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:submenuItems
}
这等于

let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:["subMenu 1","subMenu 2","subMenu 3","subMenu 4","subMenu 5","subMenu 6"]
}
为了获取
“subnumitems”
,您需要将其作为对象传递,并像下面这样获取其密钥

let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:{
        submenuItems: submenuItems
    }
}
console.log(Object.keys(main.data)[0]);
let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:{
        name: 'submenuItems',
        submenuItems: submenuItems
    }
}
console.log(main.data.name);
或者简单地创建一个新属性并将其设置为
“subnumitems”
,如下所示

let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:{
        submenuItems: submenuItems
    }
}
console.log(Object.keys(main.data)[0]);
let main = {
    title:'main menu', 
    menuLogo:'img/logo1.png',
    data:{
        name: 'submenuItems',
        submenuItems: submenuItems
    }
}
console.log(main.data.name);

您希望数据是
子菜单1,子菜单2….
子菜单项“
?您不需要将其作为对象传递吗?类似于
数据:{'submenuItems':submenuItems}
的可能副本我不理解您的新代码(或者它与问题有什么关系),但我非常确定使用
eval()
是错误的。“如果要更新
子项
main.data
不会反映更改。”这仅适用于
子项
变量本身的赋值,如
子项=…
。数组的任何更新都会反映出来。您的“证明”“显示对
子菜单项的分配,这是我所说的唯一不会反映的更新类型。请尝试
子菜单项[0]=“hi”
子菜单项。请改为拼接(1,2)
。对不起,我误解了,你是对的。我将编辑我的答案。