![](/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.