使用两个变量查找数组值

Find an Array Value using Two Variables

本文关键字:变量 查找 数组 两个      更新时间:2023-09-26

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

var list = [
    "Hello",
    "Goodbye",
];

然后我设置了两个变量,一个用于指定两个变量:一个用于数组的名称,另一个用于数字,例如:

var array = "list";
var number = 0;

然后我运行以下命令:

console.log(array[number]);

但它输出的是数字"1"而不是"Hello"。

有人能解释一下吗?

编辑:

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

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

但它输出的是数字"1"而不是"Hello"。有什么想法吗?

不,它不输出1,而是l(字母表L小写(。

当您在中将字符串list分配给它时,array不再是数组

var array = "list";

然后

array[0]

相当于

"list"[0]

它将返回第零个索引处的字符,从而返回l


解决方案:

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

var array = list; // Remove quotes.

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

var copy = list.slice(0);

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

console.log(array[number]);

array对象(它是值'list'的字符串(开始,然后返回与number相关联的位置,即0。因此,在英语中,这意味着打印"list"的第11个CCD_字母,即"l"。

根据你写的,听起来你很抽象,有一种我通常看不到的间接性。你可以按照自己的要求去做,但这是一件奇怪的事情。list是全局作用域上的一个变量,对于浏览器来说,它可以通过window来使用。因此,您可以执行以下操作:

window[array][number]

其解释如下:

window['list'][number]

与相同

list[number]

与相同

list[0]

哪个是

"Hello"

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

console.log(array[number])

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

您已经为字符串"list"分配了一个名为array的变量。然后,当您尝试检索第0个(您的可变数字(元素时,您会得到字符串"list"中的第一个字符。