我有一个包含多个值的数组。我还有其他几个区域,每个区域都有不同的编号,而不是
var u3s0A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"];
但是,我无法弄清楚如何动态引用数组。我试过了:
alert(u3s + randomNumber + A[p]);
但只有错误。我意识到如果我做了
alert('u3s' + randomNumber + 'A'[p]);
它输出正确的数组名称,但随后将其转换为字符串,当我将其编入索引时:
var arrayHolder = 'u3s' + randomNumber + 'A';
alert(arrayHolder[0]);
我得到数组名称(u)中的第一个数字,而不是数组中的第一个数字。
任何帮助将不胜感激!
非常感谢你的时间。
答案 0 :(得分:4)
尝试这种方式,创建一个临时对象并将数组设置为对象的属性,然后使用带有构造属性名称的括号表示法访问它:
var ob = {};
ob.u3s0A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"];
ob.u3s1A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"];
.....
然后
alert(ob['u3s' + randomNumber + 'A'][p]);
如果这是在全局范围内,并且如果您在浏览器中,则可以使用与上面相同的方式使用窗口对象而不是临时对象ob
来访问它。
<强> Demo 强>
答案 1 :(得分:0)
尝试这样的事情:
window['u3s' + randomNumber + A[p]]