是否可以将字符串用作数组的名称持有人?

var myArray = ["a","b","c"];
var myPointer = "myArray";

console.log(myPointer[1]); //Should return "b"

最佳答案

是的,您可以这样做。我知道几种方法。

第一个是使用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];
}

编辑:正如在其他帖子的评论中指出的那样,这实际上不是指针。我假设您想根据字符串值动态确定要使用哪个数组。

关于javascript - 指向数组的字符串指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18896721/

10-12 02:23