JavaScript循环遍历数组

Raf*_*fay 3 javascript loops

我正在尝试完成此任务,我已经设置了代码,但是,有一个问题.

赋值:"创建一个包含七个字符串值的数组,初始化为这些星的名称:Polaris,Aldebaran,Deneb,Vega,Altair,Dubhe和Regulus.创建一个包含七个额外字符串值的数组,初始化为名称发现星星的星座:小熊座,金牛座,天鹅座,天琴座,天鹰座,大熊座和狮子座.接下来,创建一个接受单个字符串参数的函数.在函数内迭代第一个数组,搜索当找到星星时,返回第二个数组中该索引中包含的值.换句话说,返回该星号的星座名称.使用提示从访问者收集星星的名称,然后调用具有该输入的功能.不要忘记包括在找不到星形时执行的代码.在屏幕上显示结果."

代码:

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);
Run Code Online (Sandbox Code Playgroud)

问题:

此代码仅适用于星号数组中的第一个值.除了该数组的第一个元素("Polaris")之外的任何内容,该函数返回false值.

Luk*_*vin 5

在你的循环体内,你总是返回一个值,所以循环体只会执行一次.


Pau*_*ese 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);
Run Code Online (Sandbox Code Playgroud)