You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现1-30整数翻译为法语/德语的JavaScript代码调试求助

问题分析与解决方案

原有代码存在的问题

  • 逻辑运算符使用错误:判断数字超出范围时使用了number <1 && number > 30,该条件永远不可能成立(一个数无法同时小于1且大于30),应该使用逻辑或||;语言判断使用了单与&而非逻辑与&&,同时判断逻辑写反、字符串比较未加引号,完全不符合预期。
  • 语法错误:代码中存在无意义的undefined语句、if判断后多余的分号、字符串随意换行、在非循环/switch场景使用break等问题,直接运行会抛出语法错误。
  • 输入未做类型校验:prompt返回值为字符串类型,未做数字合法性校验,输入非数字内容也会进入后续逻辑,不符合需求。
  • 流程不符合要求:需求明确输入不合法直接终止程序,原有代码会重复弹出输入框,且范围判断逻辑完全错误(if (number <= 1 && number <= 30)等同于只要数字≤1就符合条件)。
  • 变量使用不规范:同一变量重复使用var声明,函数参数被内部声明的同名变量覆盖,变量作用域混乱。

符合需求的正确实现

function translate() {
    // 第一步:获取并校验数字输入
    const inputNum = prompt("Enter text to translate?");
    // 判断是否为纯数字字符
    if (isNaN(Number(inputNum)) || !/^\d+$/.test(inputNum)) {
        alert("Please use digits");
        return;
    }
    const num = parseInt(inputNum);
    // 判断数字范围是否符合要求
    if (num < 1 || num > 30) {
        alert("Please type an integer number between 1 and 30");
        return;
    }

    // 第二步:获取并校验语言输入
    const lang = prompt("Please enter translation language, French or German?");
    if (lang !== "French" && lang !== "German") {
        alert("only French or German is allowed");
        return;
    }

    // 定义翻译映射数组
    const french = ["Zéro", "Un", "Deux", "Trois", "Quatre", "Cinq", "Six", "Sept", "Huit", "Neuf", "Dix", "Onze", "Douze", "Treize", "Quatorze", "Quinze", "Sieze", "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"];
    const german = ["Null", "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 result = lang === "French" ? french[num] : german[num];
    alert(`翻译结果:${result}`);
    return result;
}

// 调用函数启动程序
translate();

内容的提问来源于stack exchange,提问作者mu joko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:15:04