Я относительно новичок в JavaScript. Я использую титановый SDK appcelerator для создания мобильного приложения, и оно использует только javascript.
В любом случае, у меня есть система меню иерархии, которую я создаю. У меня есть массивы данных, заполненные элементами подменю. Каждый массив данных заполнен различным подменю. Когда я нажимаю на пункт меню, он получает переменную, которая позволяет приложению узнать, какой массив данных загрузить следующим. Вот базовый пример:
var data = [
{title:'Item 1',subID:'1', hasDetail:true,},
{title:'Item 2',subID:'1', hasDetail:true,}
];
var data1 = [
{title:'Child1',subID:'1_1', hasDetail:true},
{title:'Child2', subID:'1_2', hasDetail: true}
];
var data1_1 = [
{title:'Grandchild1'},
{title:'Grandchild2'}
];
// I have a ton of menu items though, so the method I'm using
// below is very inefficient:
if(win.subID == '1'){
tableview.setData(data1);
} else if(win.subID == '2'){
tableview.setData(data2);
}
Есть еще много меню (1,2,3,4 и т. Д. И 1_1,1_2,1_3,2_1,2_2 и т. Д.), Поэтому описанный выше способ установки данных крайне неэффективен. То, что я хотел бы, так что-то вроде этого:
tableview.setData(data + win.subID);
Однако я знаю, что данные - это объект массива, а subID - это строка. Как я могу объединить имя объекта со строкой, а затем преобразовать его, чтобы снова обратиться к объекту?
Спасибо, и, пожалуйста, дайте мне знать, если что-то выше неясно. Я боролся с этим очень долго.
EDIT:
Вот что мне нужно в других словах:
У меня есть строка, которую я хочу использовать для ссылки на массив.
data1 = [
{value: 1},
{value: 2}
]
var string = 'data1';
magicStringToArrayFunction(string);
tableview.setData(string);
Мне нужна эта магическая строка для функции массива / объекта.