Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript,jquery-使用变量名调用数组位置_Javascript_Jquery_Variables - Fatal编程技术网

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:这怎么不是一个真正的问题?