【问题标题】:JavaScript looping through arrayJavaScript 遍历数组
【发布时间】:2012-01-07 09:09:28
【问题描述】:

我正在尝试完成这项任务,我已经设置了代码,但是出现了问题。

作业: “创建一个包含七个字符串值的数组,初始化为这些星星的名称:北极星, 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);

问题

此代码仅适用于 stars 数组中的第一个值。除了该数组的第一个元素(“Polaris”)之外,该函数返回 false 值。

【问题讨论】:

  • 要将恒星映射到它的星座,关联数组更有意义。

标签: javascript loops


【解决方案1】:

你的条件语句是错误的。试试这个。

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);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2021-06-16
      • 2016-02-18
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多