Javascript 使用两个变量查找数组值

Javascript 使用两个变量查找数组值,javascript,arrays,Javascript,Arrays,假设我设置了一个简单的数组: var list = [ "Hello", "Goodbye", ]; 然后我设置了两个变量,一个用于指定两个变量:一个用于数组的名称,另一个用于数字,如下所示: var array = "list"; var number = 0; 然后我运行以下命令: console.log(array[number]); 但它输出的是数字“1”,而不是“Hello” 有人能解释一下吗 编辑: 我是作为一个没有经验的程序员写这个问题的。我应该用一本字典来完

假设我设置了一个简单的数组:

var list = [
    "Hello",
    "Goodbye",
];
然后我设置了两个变量,一个用于指定两个变量:一个用于数组的名称,另一个用于数字,如下所示:

var array = "list";
var number = 0;
然后我运行以下命令:

console.log(array[number]);
但它输出的是数字“1”,而不是“Hello”

有人能解释一下吗

编辑:

我是作为一个没有经验的程序员写这个问题的。我应该用一本字典来完成这项任务

粗略地说,它们将允许您使用字符串对数组进行索引

但它输出的是数字“1”,而不是“Hello”。有什么想法吗

不,它不输出
1
,它是
l
(字母
l
小写)

当您在中为
列表
指定字符串时,
数组
不再是数组

var array = "list";
然后

array[0]
相当于

"list"[0]
它将返回第0个索引处的字符,从而返回
l


解决方案:

要引用数组,请使用变量名(无需引号)

如果您不想引用同一数组并希望创建副本,请使用
slice()

但它输出的是数字“1”,而不是“Hello”。有什么想法吗

不,它不输出
1
,它是
l
(字母
l
小写)

当您在中为
列表
指定字符串时,
数组
不再是数组

var array = "list";
然后

array[0]
相当于

"list"[0]
它将返回第0个索引处的字符,从而返回
l


解决方案:

要引用数组,请使用变量名(无需引号)

如果您不想引用同一数组并希望创建副本,请使用
slice()

正在打印字符串“list”的第0个元素的值,即l,这就是您看到的

您已经为字符串“list”指定了一个名为array的变量。然后,当您尝试检索第0个(变量号)元素时,您将获得字符串“list”中的第一个字符

正在打印字符串“list”的第0个元素的值,即l,这就是您看到的


您已经为字符串“list”指定了一个名为array的变量。然后,当您尝试检索第0个(您的变量号)元素时,您会得到字符串“list”中的第一个字符。

您确定它输出的是“1”(数字1)而不是“l”(小写字母ell)?因为

console.log(array[number]);
数组
对象(一个值“列表”字符串)开始,然后返回与
编号
关联的位置,即
0
。因此,在英语中,这意味着打印'list'的
0
th个字母,即'l'

根据你写的,听起来你非常抽象,有一种我通常看不到的间接性。你可以按你的要求去做,但这是一件奇怪的事情<代码>列表是全局作用域上的一个变量,可通过
窗口
访问全局作用域。因此,您可以执行以下操作:

window[array][number]
window['list'][number]
其解释如下:

window[array][number]
window['list'][number]
这和

list[number]
list[0]
这和

list[number]
list[0]
那是

"Hello"

通常,使用
数组
变量指定的抽象级别是不必要的。

您确定它输出的是“1”(数字1)而不是“l”(小写字母ell)?因为

console.log(array[number]);
数组
对象(一个值“列表”字符串)开始,然后返回与
编号
关联的位置,即
0
。因此,在英语中,这意味着打印'list'的
0
th个字母,即'l'

根据你写的,听起来你非常抽象,有一种我通常看不到的间接性。你可以按你的要求去做,但这是一件奇怪的事情<代码>列表
是全局作用域上的一个变量,可通过
窗口
访问全局作用域。因此,您可以执行以下操作:

window[array][number]
window['list'][number]
其解释如下:

window[array][number]
window['list'][number]
这和

list[number]
list[0]
这和

list[number]
list[0]
那是

"Hello"

通常,使用
array
变量指定的抽象级别是不必要的。

为什么要这样做
var array=“list”?您必须引用当前范围。如果这是全局范围,那么您将使用
console.log(window[array][number])
,因为window是全局范围。@Blindman67可以这样做,但不推荐这样做。并且,从
var array=“list”中的变量名
你可以知道OP想在这里做什么。@Tushar我猜他是想间接引用数组
列表
。使用括号表示法是访问变量的合法方法,
这个[array][number]
也会起作用?您必须引用当前范围。如果这是全局范围,那么您将使用
console.log(window[array][number])
,因为window是全局范围。@Blindman67可以这样做,但不推荐这样做。并且,从
var array=“list”中的变量名
你可以知道OP想在这里做什么。@Tushar我猜他是想间接引用数组
列表
。使用括号表示法是访问变量的合法方法,
这个[array][number]
也可以使用。