我正在努力完成这个任务,我已经设置了代码,但是,有一个问题。
The assignment:“创建一个包含7个字符串值的数组,初始化为这些星星的名称: Polaris、Aldebaran、Deneb、Vega、Altair、Dubhe和Regulus。创建一个包含七个额外字符串值的数组,初始化为恒星所在的星座的名称: Ursa未成年人、金牛座、Cygnus、Lyra、Aquila、Ursa Leo和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。
发布于 2011-11-27 16:11:10
你的条件陈述是错的。试试这个。
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);发布于 2011-11-27 16:06:40
在您的循环主体中,您总是返回一个值,因此循环体只执行一次。
https://stackoverflow.com/questions/8286855
复制相似问题