![](/img/trans.png)
[英]Choosing an array/object to search from using variable name, with Javascript and jQuery
[英]Javascript, jquery - Call array position by using a variable name
我有2个数组:
var array1 = [50,60];
var array2 = [120,180];
我正在将值传递给这样的变量:
var curId = $(this).attr('id');
我想将#result的内容设置为这样的计算:
$(#result).text(number * curId [0]);
Number是由我预定义的变量,并且curId [0]实际上应转换为array1 [0]或array2 [0],具体取决于css类。
谁能告诉我正确的语法吗? 我对js很了解。 谢谢。
您可以使用变量来保存要使用的数组:
var myArray;
if (something)
myArray = array1;
else
myArray = array2;
$('#result').text(number * myArray[0]);
如果试图从包含变量名称的字符串中获取变量中的数组,则应使用一个对象,如下所示:
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
那么curId
将是字符串“ array1”还是“ array2”? 然后,您将像这样:
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
这样做是创建一个对象( lookups
)以包含您要查找的信息。 该对象具有属性array1
和array1
,它们是您的数组。 您从元素的ID中将字符串“ array1”或“ array2”放入变量curId
,然后您可以使用Javascript通过[]
语法按属性名称查找属性的事实。 所有这些都是相同的:
a = lookups.array1;
// is the same as
a = lookups["array1"];
// is the same as
a = lookups["array" + "1"];
// is the same as
s = "array1";
a = lookups[s];
从技术上讲,如果数组是在全局范围内声明的,则可以不使用lookups
对象而做到这一点,但是,如果您对Javascript还是比较陌生的,我将不介绍原因,并且无论如何,我建议您使用一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.