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