javascript - 如何使用函数参数引用同名变量?

标签 javascript jquery

我正在制作一个 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/

相关文章:

javascript - 使用 html ID 标签或向元素添加属性?

javascript - jQuery 更改父同级 div 内内容的值

PHP/Ajax/jQuery数据提交方式

jquery - 如何在页面刷新时随机化 <li> 元素?

javascript - 用于获取浏览器中安装的扩展列表的 API

javascript - Backbone 在将模型渲染到模板之前扩展模型

javascript - 如何修复隐藏的溢出不适用于边框半径和 CSS 动画

javascript - 悬停时使 div 可见

javascript - 单击时设置字符串的值

javascript - 通过包含 jQuery 和 jQuery UI,我是否加载了 jQuery 两次?