繁体   English   中英

获取JavaScript中的变量名

[英]Get the variable name in javascript

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

谁能告诉我如何获取子菜单项变量名称数据:“ ---> this <-”作为String?

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
}

编辑:

我看到很多困惑。 实际上,这是我使用Vuejs编写的代码的一部分-

<div v-for="(item,index) in dataArray" v-on:click="subMenu(item)" v-bind:id="'tile_'+index" class="card">
                <div><img v-bind:src=item.menuLogo onerror="this.src='img/default.svg'" /></div>
                <div>{{item.title}}</div> 
                <div>{{index+1}}</div>
            </div>



let subhome = [ 
{"title":"sub_card_title","sub_cardimage":"sub_item1.png",data:[]},
{"title":"sub_card_title","sub_cardimage":"sub_item1.png",data:[]},    {"title":"sub_card_title","sub_cardimage":"sub_item1.png",data:[]},`
{"title":"sub_card_title","sub_cardimage":"sub_item1.png",data:[]}
] 

let home = [ 
{"title":"card_title","cardimage":"item1.png",data:[]},
{"title":"card_title","cardimage":"item1.png",data:subhome},    {"title":"card_title","cardimage":"item1.png",data:[]},`
{"title":"card_title","cardimage":"item1.png",data:[]}
] 



 let menu = new Vue({
        el: '#menu',
        data: {
            dataArray: home
        },
        methods: {
            subMenu: function(item) {
                if (item.data.length > 0) {
                    this.dataArray = item.data;
                    console.log('sub menu array -->', this.dataArray);
                    $('#menu-title').text(eval(item));
                }
            },setTitle: function(val) {
                 let title = eval(val); // <---- how to vaiable name of data array
                 $('#spancontainer').text(title)
            }  
        } 
    });

当你做

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"]
}

为了获得"submenuItems" ,您需要将其作为对象传递并获得其键,如下所示

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

或仅创建一个新属性并将其设置为"submenuItems"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM