Две проблемы, с которыми я борюсь:
- Создание новых массивов с использованием строк из другого массива.
- Ссылка на имя массива со строкой / переменной.
Для контекста я пытаюсь поместить список команд сотрудников в массив объектов, но слишком много сотрудников для максимального массива 100. Поэтому моя стратегия - создавать новые массивы, используя имена руководителей команд. Эти списки часто меняются (не так сильно, как у ТМ), но я бы хотел не заниматься обслуживанием.
Например, первый массив предназначен для Active Directory руководителей команд. Я могу получить это с помощью ajax get.
var arr_TMs = [jsmith, kjohnson, smichaels]
Поскольку ТМ могут меняться, я хочу создать новые массивы для каждой ТМ, используя arr_TM в качестве имен для самого массива
$.each( arr_TMs, function(i,v) {
//here is issue #1
var arr_ + v = []
})
Результаты будут примерно такими: arr_jsmith arr_kjohnson arr_smichaels
Я хочу использовать эти новые массивы для помещения объектов агентов в sh. У меня есть AD ТМ в Главном списке сотрудников, которому агент сообщает.
$.ajax({
url: "mysite.ca/_api/web/lists/getbyTitle('Employee Master List')/items?$filter=JobTitle eq 'Agent'&$select=Name,Skill,TeamManager_AD",
type: "GET",
async: false,
headers: {"accept":"application/json;odata=verbose"},
success: function(data) {
//here is #2 something like this:
"arr_" + data.TeamManager_AD = data.d.results
},
error: function(err) {console.log(err)}
});
После этого синтаксиса я надеюсь получить эти массивы, на которые смогу ссылаться позже:
arr_jsmith [
{Name: "James, Jesse", Skill: "Outlaw", TeamManagerAD: "jsmith"}
{Name: "Mortenson, Norma", Skill: "Actress", TeamManagerAD: "jsmith"}
{Name: "Dean, James", Skill: "Motorcycle", TeamManagerAD: "jsmith"}
]
//And so on....
arr_kjohnson [
{Name: "Mortenson, Norma", Skill: "Actress", TeamManagerAD: "kjohnson"}
{Name: "Mortenson, Norma", Skill: "Actress", TeamManagerAD: "kjohnson"}
]
arr_smichaels [
{Name: "Mortenson, Norma", Skill: "Actress", TeamManagerAD: "smichaels"}
]
Но проблема № 2 возникает снова, если я хочу динамически ссылаться на имя массива, я думаю, что это что-то вроде этого:
If ($('#myinput').Value === jsmith) {
var tmad = $('#myinput').Value
//this I can't get to work:
$.each(window["arr_" + tmad], function(i, v) {
var empName = window['arr_' + tmad].Name
var empSkill = window['arr_' + tmad].Skill
console.log(empName + ' - ' + empSkill)
});
}
Где результат будет:
"James, Jesse - Outlaw"
"Mortenson, Norma - Actress"
"Dean, James - Motorcycle"
Если, конечно, Вы знаете о гораздо более простом выражении этой цели. Цените ваше понимание этого.