У меня есть 10 массивов. Они называются resultsYEARobject
, где 2002 <= YEAR <= 2011
. Я хотел бы, чтобы вызвать каждый массив на основе другой переменной. Чтобы дать немного больше контекста, у меня есть раскрывающееся меню, в котором пользователь может выбрать год, который они хотели бы искать (2002-2011). Когда они нажимают кнопку «Поиск», я хочу иметь возможность искать массив результатов, относящийся к этому году.Динамически ссылочные массивы в JavaScript
Это то, что я пытаюсь выполнить (в PSEUDOCODE).
var year_choice = 2002;
var array_to_search = ("results" + year_choice + "object");
//array_to_search would be "results2002object"
for(int i = 0; i < array_to_search.length; ++i) {
//do stuff
}
Я программирования достаточно долго, чтобы знать, что не имеет никакого логического смысла и ни одна программа не будет правильно скомпилировать код. Тем не менее, есть ли другой способ, я могу выполнить то, что я пытаюсь сделать?
EDIT
getScript(file_path, function(){
alert("found and loaded file " + file_path);
//refine for the parameter
var search_results = new Array();
for(var i = 0; i < results2002objects.length; ++i) { //go through the array in the file I want (dependant on what the user chooses in the drop down menu)
if(results2002objects[i].sub == selected_parameter) {
search_results.push(results2002objects[i]); // add the object to the array
}
}
alert("found " + search_results.length + " results with the parameter " + selected_parameter);
for(var g = 0; g < search_results.length; ++g) {
$("#right_pane_results").append(search_results[g].st_id);
}
});
После того как я загрузить файл я иду через массив, как это. Вопрос не зависит от года, когда пользователь выбирает, приведенный выше код будет проходить через results2002object
. Кроме того, у меня нет большого контроля над именами клавиш (array ['whatever'], поскольку данные были проанализированы с использованием программы Java, которую я сделал, и я использовал библиотеку GSON для преобразования ее в JSON.
Почему вы не храните их в объекте с ключом в качестве лет – thefourtheye
@thefourtheye У меня есть каждый год как отдельный файл JavaScript (данные поступают откуда-то еще), и я хотел, чтобы каждый файл был отдельно для уменьшения времени загрузки на начало. Файл 2002 года составляет 30 МБ, а все - 300 МБ. – user3210944
@thefourtheye Итак, когда пользователь ищет, я загружаю этот конкретный файл за год и просматриваю массив. – user3210944