是否可以使用字符串作为数组的名称持有者?
var myArray = ["a","b","c"];
var myPointer = "myArray";
console.log(myPointer[1]); //Should return "b"
是否可以使用字符串作为数组的名称持有者?
var myArray = ["a","b","c"];
var myPointer = "myArray";
console.log(myPointer[1]); //Should return "b"
我不确定您为什么要这样做,但是您可以为此使用数组对象。
var myArray = ["a","b","c"];
var myObject = {"myArray": myArray};
var myPointer = "myArray";
console.log(myObject[myPointer][1]);
是的,你可以这样做。我知道几种方法。
第一个是使用eval()
,但我不打算讨论它,因为我认为它eval()
是邪恶的。
一种方法是知道您正在使用哪个范围。如果您正在使用window
范围,您可以随时使用window[myPointer][1]
. 如果您使用不同的范围,它就像做scope[myPointer][1]
.
如果您没有范围或不愿意毒化您的窗口范围,您总是可以使用这样的东西:
function blork (pointer) {
var arrays = {
number : [ 0, 1, 2, 3, 4, 5 ],
letters : [ 'a', 'b', 'c', 'd', 'e' ]
}
return arrays[pointer];
}
编辑:正如其他帖子的评论中所述,这并不是一个真正的指针。我假设您想根据字符串值动态确定要使用的数组。
我不确定为什么在你的例子中它会返回“b”......但我认为更好的解决你问题的方法是使用字典,实际上它是 JS 中非常常见的数据结构。
所以在你的情况下:
var myPoint = {
'a': 'm',
'b': 'y',
'c': 'p',
}
等等..