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]
也可以使用。