Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的eval方法_Javascript_Jquery_Arrays - Fatal编程技术网

javascript中的eval方法

javascript中的eval方法,javascript,jquery,arrays,Javascript,Jquery,Arrays,如果你有这样的东西 var x='y'; var z='x'; 如果我们想从z得到x(即y)的值,我们可以这样实现 var x='y'; var z='x'; eval(z)会给你“y” 我的问题是,如果x是像 var x=[a,b,c]; var z='x'; 如何使用变量z获取x数组值,如x[0],x[1],x[2] 我们不能使用likeeval(z[0]),如果我们给出likeeval[z]我们将得到like[a,b,c],但我想直接访问单个数组元素。实现这一点的方法是什么 请帮忙

如果你有这样的东西

var x='y';
var z='x';
如果我们想从z得到x(即y)的值,我们可以这样实现

var x='y';
var z='x';
eval(z)会给你“y”

我的问题是,如果x是像

var x=[a,b,c];
var z='x';
如何使用变量z获取x数组值,如
x[0],x[1],x[2]

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

请帮忙

提前感谢。

您可以使用Windows

window[z][0]

如果
x
是全局的,您可以使用
窗口

window[z][0] === a; // true
…但前提是
x
是全局的,坦白说,这在任何情况下都不是一个好主意

要对非全局对象执行此操作,请在对象上放置
x

var obj = {x: [a, b, c]};
…然后使用
obj

obj[z][0] === a; // true
在这两种情况下,这都有效,因为您可以使用“点表示法”和文字属性名称(
foo.bar
)或“括号表示法”和字符串属性名称(
foo[“bar”]
)访问JavaScript中的对象属性。在第二种情况下,可以使用字符串的任何表达式

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

只需使用
eval(z)[0]

在执行求值步骤之后,而不是之前,就有了一个数组。因此,
z[0]
并没有真正定义。

只有在
eval
之后才能通过索引进行访问

尝试: