javascript中的eval方法

Jay*_*abu 0 javascript arrays jquery

如果你有这样的事情

var x='y';
var z='x';
Run Code Online (Sandbox Code Playgroud)

如果我们想从z获得x(即y)的值,我们可以达到这样的目的

eval(z)会给你'y'.

我的问题是,如果我像一个数组像x

var x=[a,b,c];
var z='x';
Run Code Online (Sandbox Code Playgroud)

如何获得x数组值,如x[0],x[1],x[2]使用变量z.

我们不能使用喜欢eval(z[0]),如果我们给予喜欢eval[z]我们将得到喜欢[a,b,c]但我想直接访问单个数组元素.什么是实现这一点的方法.

请帮忙.

提前致谢.

T.J*_*der 6

如果x是全局的,您可以使用window:

window[z][0] === a; // true
Run Code Online (Sandbox Code Playgroud)

...但只有在x全球化的情况下,坦率地说,无论如何都不是一个好主意.

要使用非全局变量执行此操作,请放置x一个对象:

var obj = {x: [a, b, c]};
Run Code Online (Sandbox Code Playgroud)

......然后使用obj:

obj[z][0] === a; // true
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,这都有效,因为您可以使用"点表示法"和文字属性名称(foo.bar)或"括号表示法"和字符串属性名称(foo["bar"])来访问JavaScript中的对象属性.在第二种情况下,您可以为字符串添加任何表达式.

window适用于全局变量的原因是,在JavaScript中,所有全局变量都是全局对象的属性,在浏览器中,您可以使用符号引用该全局对象window.(实际上,window它本身是全局对象的一个​​属性,该对象用来引用它自己.)