簡體   English   中英

Javascript,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 )以包含您要查找的信息。 該對象具有屬性array1array1 ,它們是您的數組。 您從元素的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM