【问题标题】:JavaScript array returning unidentified [closed]返回身份不明的JavaScript数组[关闭]
【发布时间】:2021-12-02 11:13:48
【问题描述】:

您好我需要一些帮助我对编码很陌生我似乎无法让我的函数工作它一直返回未定义,任何提示将不胜感激。谢谢

var german = ["eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun","zehn","elf","zwölf","dreizehn","vierzehn","fünfzehn","sechzehn","siebzehn","achtzehn","neunzehn","zwanzig","einundzwanzig","zweiundzwanzig","dreiundzwanzig","vierundzwanzig","fünfundzwanzig","sechsundzwanzig","siebenundzwanzig","achtundzwanzig","neunundzwanzig","dreiβig"];
var french = ["un","duex","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf","vingt","vingt et un","vingt-deux","vingt-trois","vingt-quatre","vingt-cinq","vingt-six","vingt-sept","vingt-huit","vingt-neuf","trente"];

var translatedNumber = translate();


var number = prompt("Please enter a number between 1-30 to be translated");
    if (number > 30 || number < 1) {
        alert("Please enter a number between 1-30")
        exit()
    }
    else if(isNaN(number)){
        alert("Please enter digits")
        exit()
    }


var language = prompt("Translated into what language? French/German");

    if (language == "german" || language == "french"){
    translate();
    } 
    else{
    alert("Only French or German is allowed")
    exit()
    }

function translate(number,language,translatedNumber,french,german){
    if(language == "german"){
        var translatedNumber = german[number - 1];
        }
    
    else if(language == "french"){
        var translatedNumber = french[number - 1];
        }
    return translatedNumber;
}

alert("The translation is " + translatedNumber);

【问题讨论】:

标签: javascript arrays function


【解决方案1】:

已修复:

(问题是您没有正确设置函数。我将 translate 函数变量更改为 lan 和 num 因为它们是您在函数中使用的唯一两个。另外我认为您不需要定义由于您还没有使用它,因此已在顶部翻译了编号)希望这会有所帮助:D。)

var german = ["eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun","zehn","elf","zwölf","dreizehn","vierzehn","fünfzehn","sechzehn","siebzehn","achtzehn","neunzehn","zwanzig","einundzwanzig","zweiundzwanzig","dreiundzwanzig","vierundzwanzig","fünfundzwanzig","sechsundzwanzig","siebenundzwanzig","achtundzwanzig","neunundzwanzig","dreiβig"];
var french = ["un","duex","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf","vingt","vingt et un","vingt-deux","vingt-trois","vingt-quatre","vingt-cinq","vingt-six","vingt-sept","vingt-huit","vingt-neuf","trente"];

var translatedNumber;


var number = prompt("Please enter a number between 1-30 to be translated");
    if (number > 30 || number < 1) {
        alert("Please enter a number between 1-30")
        exit()
    }
    else if(isNaN(number)){
        alert("Please enter digits")
        exit()
    }


var language = prompt("Translated into what language? French/German");

    if (language == "german" || language == "french"){
    translate(language, number);
    } 
    else{
    alert("Only French or German is allowed")
    exit()
    }

function translate(lan, num){
    if(lan == "german"){
        translatedNumber = german[num - 1];
        } else if(lan == "french"){
        translatedNumber = french[num - 1];
        }
    return translatedNumber;
}

alert("The translation is " + translatedNumber);

【讨论】:

    【解决方案2】:

    关于您的代码需要注意的几点:

    1. exit 函数未定义。
    2. 您的translatedNumber 是一个全局变量,它是从另一个函数中修改的。避免使用此类全局变量。
    3. 您应该先检查变量是否为数字,然后再检查它是否在要求的范围内。

    希望以下是您正在寻找的:

    const german = ["eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun","zehn","elf","zwölf","dreizehn","vierzehn","fünfzehn","sechzehn","siebzehn","achtzehn","neunzehn","zwanzig","einundzwanzig","zweiundzwanzig","dreiundzwanzig","vierundzwanzig","fünfundzwanzig","sechsundzwanzig","siebenundzwanzig","achtundzwanzig","neunundzwanzig","dreiβig"];
    const french = ["un","duex","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf","vingt","vingt et un","vingt-deux","vingt-trois","vingt-quatre","vingt-cinq","vingt-six","vingt-sept","vingt-huit","vingt-neuf","trente"];
    
    try {
      const number = prompt("Please enter a number between 1-30 to be translated");
      if (isNaN(number))
        throw({ message: "Please enter digits"});
      if (number > 30 || number < 1)
        throw({ message: "Please enter a number between 1-30"});
    
      const language = prompt("Translated into what language? French/German");
      if (language == "german" || language == "french"){
        const translatedNumber = translate(number, language);
        alert("The translation is " + translatedNumber);    
      } 
      else
        throw({ message: "Only French or German is allowed"});
    } catch (error) {
      alert(error.message);
    }
    
    function translate(number,language){
      return language == "german" ?  german[number - 1] : french[number - 1];
    }

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2013-04-02
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多