javascript - 使用传递给函数的参数从一组数组动态检索值

标签 javascript arrays function parameters

我正在开发一种教育工具。我想根据传递给函数的参数从一组数组中检索一个值。具体来说,此代码的目标是根据用户的选择更改一组单选按钮上的标签文本。

这是我的代码:

    //arrays
var bodyplan = ['Anguilliform', 'Compressiform', 'Depressiform', 'Filiform', 'Fusiform', 'Globiform', 'Sagittiform', 'Taeniform']

var caudalshape = ['Continuous', 'Emarginate', 'Forked', 'Lunate', 'Rounded', 'Truncate']

var mouthposition = ["Inferior", "Jawless", "Subterminal", "Superior", "Terminal"]

//function
function changelabels(opt1, opt2){
    var i = opt2
    var c = 1
    var index = 0
    while (i>=c){
        document.getElementById("rb" + c + "lbl").innerHTML = (opt1[index]) 
        c = c + 1
        index = index + 1}}

对该函数的调用是在相当长的 switch 语句中进行的。例如,这是其中一个调用:

case 4:
    changelabels("caudalshape", 6)

我上面创建的代码确实更改了标签,但不是以所需的方式。对于上述情况,我的单选按钮不是被标记为“连续”、“边缘”、“ fork ”等,而是被标记为“c”、“a”、“u”、“d”等。换句话说,我编写的函数不是从数组中提取值。它只是根据索引从传递给函数的参数字中选择字母。

如有任何帮助,我们将不胜感激。我是 Javascript 的新手。我花了几个小时尝试解决这个问题,无论是在玩代码还是在搜索这些论坛上。

最佳答案

这是因为您正在操作字符串 "caudalshape"而不是名为 "caudalshape" 的变量所指向的数组.

您可以通过传递数组而不是字符串来解决此问题;

changelabels(caudalshape, 6)

与您的问题无关;您确实应该开始在代码中添加您自己的分号。是的,它在 JavaScript 中是可选的,但在其他许多语言中不是可选的,而且当需要学习另一种语言时(个人经验),适应起来很痛苦。欲了解更多信息,请参阅Do you recommend using semicolons after every statement in JavaScript?

关于javascript - 使用传递给函数的参数从一组数组动态检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522592/

相关文章:

php - Javascript 和 PHP 函数

javascript - 滚动到页面顶部

python - 运行时警告 : invalid value encountered in long_scalars

javascript - 带有淡入的循环 jQuery 函数

jquery - Json 对象数组长度

python - 通过Python查找列表中特定位置的绝对最大值或最小值

javascript - JS中如何让循环在特定时间范围内执行某些操作

javascript - 使用 Rails 上传文件?

Javascript 和按钮切换

javascript - Ember.js ember-model 泄漏问题?