Javascript,jquery-使用变量名调用数组位置
我有两个阵列:Javascript,jquery-使用变量名调用数组位置,javascript,jquery,variables,Javascript,Jquery,Variables,我有两个阵列: var array1 = [50,60]; var array2 = [120,180]; 我将一个值传递给一个变量,如下所示: var curId = $(this).attr('id'); var arrays = { array1: [50,60], array2: [120,180] }; var myArray = arrays[curId]; $('#result').text(number * myArray[0]); var lookup
var array1 = [50,60];
var array2 = [120,180];
我将一个值传递给一个变量,如下所示:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
我想将#result的内容设置为如下计算:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
$(#result).text(number*curId[0])
Number是我预定义的一个变量,根据css类,curId[0]实际上应该转换为array1[0]或array2[0]
谁能告诉我正确的语法吗?我对js很在行。
谢谢。您可以使用变量来保存要使用的数组:
var myArray;
if (something)
myArray = array1;
else
myArray = array2;
$('#result').text(number * myArray[0]);
如果试图从包含变量名称的字符串中获取变量中的数组,则应使用对象,如下所示:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
可以使用变量保存要使用的数组:
var myArray;
if (something)
myArray = array1;
else
myArray = array2;
$('#result').text(number * myArray[0]);
如果试图从包含变量名称的字符串中获取变量中的数组,则应使用对象,如下所示:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
那么
curId
将是字符串“array1”还是“array2”?然后你会这样做:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
这样做的目的是创建一个对象(查找
)来包含您正在查找的信息。该对象具有属性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];
从技术上讲,如果您的数组是在全局范围内声明的,您可以不使用
查找对象来实现这一点,但是如果您对Javascript相当陌生,我将不讨论原因,不管怎样,我建议您使用一个。因此curId
将是字符串“array1”或“array2”?然后你会这样做:
var curId = $(this).attr('id');
var arrays = {
array1: [50,60],
array2: [120,180]
};
var myArray = arrays[curId];
$('#result').text(number * myArray[0]);
var lookups = {
array1: [50, 60],
array2: [120,180]
};
var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);
这样做的目的是创建一个对象(查找
)来包含您正在查找的信息。该对象具有属性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];
从技术上讲,如果您的数组是在全局范围内声明的,您可以不使用查找对象来实现这一点,但是如果您对Javascript相当陌生,我将不讨论原因,不管怎样,我建议您使用一个。@close-voter:这怎么不是一个真正的问题?@close-voter:这怎么不是一个真正的问题?