使用两个变量查找数组值
Find an Array Value using Two Variables
假设我设置了一个简单的数组:
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"中的第一个字符。
- Javascript 变量使用 jquery 查找变量
- "可以't查找变量:cordova”;
- "可以't查找变量:window“;在suds.js中
- ReferenceError:Can't查找变量:functionName
- MongoDB MonkAPI根据数据库请求之外可用的查找结果设置变量
- 在 for 循环中查找变量的迭代总和
- 如果字符串保存在变量中,如何查找包含字符串的ID
- 敲除嵌套数组分页,如何跟踪变量或查找父记录
- 按名称查找变量
- ReferenceError:Can't在AngularJS中查找变量:xxxService,Karma
- JQuery可以't从单独的javascript文件中查找变量
- 查找任何未定义的变量并从url字符串中隐藏
- 代码在shell中运行,但提供'可以't查找变量'从文件运行时出错
- 在(跨浏览器)JavaScript 中,何时必须在局部范围内缓存变量查找
- Javascript:作用域链/变量查找性能
- 查找“包含”中的多个值变量
- 如何使用变量查找和更改对象属性
- 编码对象的Django模板变量查找
- 如何使用主JSON中的变量查找第二个JSON数据集-使用Handlebars
- 使用两个变量查找数组值