The purpose of object orientation keep the attributes and functionality of a given abstract thing in one place, and not strewn across multiple separate data structures, like you have here. Thankfully, Javascript allows you to very easily model each menu/submenu with their attributes literally.
In the same way that you've represented the names of the menus in an array, you can just as easily represent the menus themselves in an array, while encapsulating all of the data related to each particular menu within a simple structure.
Here I've modeled a simple object to represent each menu as a very simple object.
var menus = [
{
name : 'menu1',
submenus : [
{
name : 'subMenu1',
items : [
{
name : 'item1',
enabled : false,
action : function() { /* do something */ }
}
]
}
]
},
{
name : 'menu2',
submenus : [
{
name : 'subMenu2',
items : [ /**etc.**/ ]
}
]
}
];
The menu has a name and an array of submenus, each submenu, in turn, also has a name and a list of items. Each item, again, has a name, a boolean representing whether it is disabled or not, and an action function (presumably you would bind this to a click event).
Here, the menu and submenu are almost identical data structures (other than the arbitrary distinction that a menu has submenus, whereas a submenu has items). You could simplify this even further by modeling the menu using a recursive data structure, like a tree, where each node is either a submenu or an action. Using recursion would allow you to create menus of arbitrary depth, add actions at any depth, and move submenus up and down with ease.