Javascript 指向数组的字符串指针

Javascript 指向数组的字符串指针,javascript,arrays,object,pointers,Javascript,Arrays,Object,Pointers,是否可以使用字符串作为数组的名称持有者 var myArray = ["a","b","c"]; var myPointer = "myArray"; console.log(myPointer[1]); //Should return "b" 是的,你能做到。我知道一些方法 第一个是使用eval(),但我不打算讨论它,因为我认为eval()是邪恶的 一种方法是知道您正在使用哪个范围。如果您使用的是窗口范围,则始终可以执行窗口[myPointer][1]。如果您使用的是不同的作用域,那么只需

是否可以使用字符串作为数组的名称持有者

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

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

是的,你能做到。我知道一些方法

第一个是使用
eval()
,但我不打算讨论它,因为我认为
eval()
是邪恶的

一种方法是知道您正在使用哪个范围。如果您使用的是
窗口
范围,则始终可以执行
窗口[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];
}
编辑:正如其他帖子的评论所指出的,这并不是一个真正的指针。我假设您希望根据字符串值动态确定要使用的数组

为了提高效率,基本类型(主要是字符串/数字/布尔值)按值传递。函数、对象、数组等对象通过引用传递

因此,您可以将其设置为对象,然后使用对其的引用


希望这能有所帮助:)

我不确定您为什么要这样做,但您可以使用数组对象来实现这一点

var myArray = ["a","b","c"];
var myObject = {"myArray": myArray};
var myPointer = "myArray";
console.log(myObject[myPointer][1]);

我不知道为什么在你的例子中它会返回“b”。。。 但我认为解决问题的更好方法是使用字典,实际上它是JS中非常常见的数据结构

因此,在您的情况下:

var myPoint = {
    'a': 'm',
    'b': 'y',
    'c': 'p',
}

以此类推。

这个答案可能会帮助您将字符串分配给myPointer,而不是数组。我要指出
eval
并指定不使用它,您比我快!为了进一步扩展,您可以使用字符串引用任何对象的任何成员。所以,如果你有
varobj={字母:['a','b','c'],数字:['1','2','3']}
您可以使用
obj.letters
obj.numbers
访问数组,或者使用
obj[“letters”]
obj[“numbers”]
访问数组。因此,您还可以使用
var pointer=“letters”
,并访问
obj[pointer][1]
以获取
'b'
。在谈到作用域时,@MrP是说您只需要让某个对象包含数组。