首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript循环阵列

JavaScript循环阵列
EN

Stack Overflow用户
提问于 2011-11-27 16:03:26
回答 2查看 769关注 0票数 3

我正在努力完成这个任务,我已经设置了代码,但是,有一个问题。

The assignment:“创建一个包含7个字符串值的数组,初始化为这些星星的名称: Polaris、Aldebaran、Deneb、Vega、Altair、Dubhe和Regulus。创建一个包含七个额外字符串值的数组,初始化为恒星所在的星座的名称: Ursa未成年人、金牛座、Cygnus、Lyra、Aquila、Ursa Leo和Leo。接下来,创建一个接受单个字符串参数的函数。在函数中,遍历第一个数组,搜索星体。当找到星星时,返回第二个数组中包含在该索引中的值。换句话说,返回该恒星的星座名称。使用提示符从访问者收集星号,然后用该输入调用函数。不要忘记包含在没有找到星星时执行的代码。在屏幕上显示结果。“

代码

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-27 16:11:10

你的条件陈述是错的。试试这个。

代码语言:javascript
复制
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);
票数 5
EN

Stack Overflow用户

发布于 2011-11-27 16:06:40

在您的循环主体中,您总是返回一个值,因此循环体只执行一次。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8286855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档