我正在制作一个 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];
<小时/>
虽然可以从字符串引用局部变量,但它需要一种通常不推荐的方法。全局变量更容易一些。
<小时/>如果您试图通过比例,那么您根本不使用字符串。您只需使用直接引用即可。 主要规模
关于javascript - 如何使用函数参数引用同名变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10965148/