【发布时间】:2020-04-08 16:17:44
【问题描述】:
我正在努力解决的两个问题:
- 使用来自另一个数组的字符串创建新数组。
- 使用字符串/变量引用数组名称。
对于上下文,我正在尝试将员工团队列表放入对象数组中,但是对于 100 个最大数组来说,员工太多了。所以我的策略是使用团队经理的名字创建新数组。这些列表经常更改(不是 TM 的那么多),但我希望免于维护部分。
例如,第一个数组用于团队经理的 Active Directory。
我可以通过 ajax get 获取它。
var arr_TMs = [jsmith, kjohnson, smichaels]
因为 TM 可以更改,我想使用 arr_TMs 作为数组本身的名称为每个 TM 创建新数组
$.each( arr_TMs, function(i,v) {
//here is issue #1
var arr_ + v = []
})
结果将类似于:
arr_jsmith
arr_kjohnson
arr_smichaels
我想使用这些新数组将代理的对象推入。
我在代理向其报告的员工主列表中有 TM 的 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"
当然,除非您知道这个目标的更简单的表达方式。
感谢您对此的见解。
【问题讨论】:
标签: jquery arrays ajax sharepoint