我正在尝试完成此任务,我已经设置了代码,但是,有一个问题。
作业: “创建一个包含七个字符串值的数组,初始化为这些星的名称:Polaris, Aldebaran,Deneb,Vega,Altair,Dubhe和Regulus。创建一个附加七个数组 字符串值,初始化为星座中的星座名称 被发现:Ursa Minor,Taurus,Cygnus,Lyra,Aquila,Ursa Major和Leo。接下来,创建 一个接受单个字符串参数的函数。在函数内,迭代 第一个数组,寻找明星。找到星号后,返回包含的值 在第二个数组中的那个索引中。换句话说,返回星座名称 那个明星。使用提示从访问者收集星的名称,然后使用该输入调用该函数。不要忘记包含代码 在找不到星星时执行。在屏幕上显示结果。“
代码:
var stars = ["Polaris", "Aldebaran", "Deneb", "Vega", "Altair", "Dubhe", "Regulus"];
var stars2 = ["Ursa Minor", "Taurus", "Cygnus", "Lyra", "Aquila", "Ursa Major", "Leo"];
function processStar(starName){
for (var i=0; i < stars.length; i++) {
if(starName == stars[i]){
return stars2[i];
} else {
return "No star found!";
}
}
}
var getStar = prompt("Input the star name.");
var result = processStar(getStar);
alert(result);
问题:
此代码仅适用于星号数组中的第一个值。除了该数组的第一个元素(“Polaris”)之外的任何东西,该函数都返回false值。
答案 0 :(得分:5)
在你的循环体内,你总是返回一个值,所以循环体只会执行一次。
答案 1 :(得分:5)
您的条件陈述是错误的。试试这个。
var stars = ["Polaris", "Aldebaran", "Deneb", "Vega", "Altair", "Dubhe", "Regulus"];
var stars2 = ["Ursa Minor", "Taurus", "Cygnus", "Lyra", "Aquila", "Ursa Major", "Leo"];
function processStar(starName){
for (var i=0; i < stars.length; i++) {
if(starName == stars[i]){
return stars2[i];
}
}
return "No star found!";
}
var getStar = prompt("Input the star name.");
var result = processStar(getStar);
alert(result);