如何使用函数参数引用同名变量
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");
相关文章:
- JavaScript变量引用数组时出现问题
- 通过另一个变量引用变量名称,或从变量确定变量名称
- 使用clearInterval方法实现的是将区间变量引用设置为null,而不是
- JavaScript闭包和变量引用
- 使用Javascript变量引用JSON键
- jQuery变量引用顺序
- 如何将变量引用传递给Observable订阅
- 这些变量引用如何工作
- 更改 JavaScript 中的变量引用
- Javascript变量引用/范围问题
- 在变量引用中使用函数参数
- 在打字稿中创建动态变量引用
- 根据对元素的变量引用从 DOM 中删除该元素
- 闭包中变量引用的意外行为
- 使用变量引用对象属性
- 基于变量引用的 Javascript 更改变量
- 使用变量引用样式属性
- 在 JavaScript 中使用变量引用 JSON 数字键
- 如何将全局作用域变量引用到局部作用域中
- 通过循环变量引用Javascript数组元素