![](/img/trans.png)
[英]Cannot use let to define a variable with the same name of function's parameter
[英]How to use a function parameter to refer to the variable of the same name?
我正在制作一個jquery插件來顯示鋼琴音階。
我有一個名為markScale(a,b)的函數,它將用於突出顯示某些音階(a參數給出起始音符的音高,即從C開始的多少個半音,默認音階)。 那沒問題。
問題在於b,要顯示的比例或和弦的類型。 我已經定義了在不同類型的比例中使用哪些鍵,如下所示:
var majorScale=[12,14,16,17,19,21,23,24];
var nminorScale=[12,14,15,17,19,20,22,24];
var hminorScale=[12,14,15,17,19,20,23,24];
所以我要做的是以下內容:
for(i=0;i<8;i++){
$('#key-'+(b[i]+a)+'-marker').show();
}
markScale(0,“majorScale”)不起作用,因為它只是一個字符串而不是指我需要的數組變量。
如何將數組變量稱為函數的參數?
謝謝
我想我們缺少一些信息,但是如果你想按名稱來擴展比例,那么把數組放在一個對象而不是單個變量中。
var scales = {
majorScale:[12,14,16,17,19,21,23,24],
nminorScale:[12,14,15,17,19,20,22,24],
hminorScale:[12,14,15,17,19,20,23,24]
};
然后你可以用字符串引用比例......
var the_scale = "majorScale"
scales[the_scale][i];
雖然可以從字符串引用局部變量,但它需要一種通常不推薦的方法。 全局變量更容易一些。
如果您試圖通過比例,那么根本不使用字符串。 您只需使用直接參考。 majorScale
沒有更多的上下文很難分辨,但你試過將數組majorScale本身傳遞給markScale()函數嗎?
如:markScale(c,majorScale);
而不是字符串:markScale(c,“majorScale”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.