0

我正在制作高中水平的西班牙语 1 和 2 翻译,但我遇到了一个错误;在提示您输入单词后,它不仅会为您提供翻译,还会打印出整个翻译列表。

我正在使用从站点 Codeacademy.com 获得的基本 Java 知识,但无法弄清楚导致此错误的原因。

PS如果你能帮助我用if语句更容易和更快地完成这个过程,我将不胜感激。

代码:

var word = prompt("Word to translate(lower case only):");

//English
var hi;
var white;

//Translate
var hola = hi;
var blanco = white;

var translate = function(word)
{
    return word;
};

//Spanish to English
if(translate() === hola)
{
    console.log("hi");
}

if(translate() === blanco)
{
    console.log("white");
}

//English to Spanish
if(translate() === hi)
{
    console.log("hola");
}

if(translate() === white)
{
    console.log("blanco");
}
4

1 回答 1

2

你应该复习你对变量和函数的理解。你正在做两件看似混乱的事情。

首先,以下代码将所有变量设置为undefined,因此它们彼此相等:

var hi;
var white;

var hola = hi;
var blanco = white;

您应该使用类似的语句var hi = "hi";,它将变量的值设置hi为字符串"hi"

其次,当你调用你的translate函数时,你需要传递一个变量,因为你将它定义为接受一个变量word。所以你会说translate("hi")例如。您还需要让您的translate函数实际执行某些操作。现在,它只返回传递给它的相同字符串。


以下是一个解决方案,使用您可能根据课程熟悉的更简单的技术。这类问题有更复杂的解决方案,但我认为它们超出了这里的范围。

Codeacademy 的教学工作非常出色,因此您真的应该再次阅读材料以了解您做错了什么。祝你好运!

// English
var hi = "hi";
var white = "white";

// Spanish
var hola = "hola";
var blanco = "blanco";

var translate = function(word)
{
    // Spanish to English
    if (word === hola)
        console.log(hi);
    else if (word === blanco)
        console.log(white);
    // English to Spanish
    else if (word === hi)
        console.log(hola);
    else if (word === white)
        console.log(blanco);
};

// Ask for word
var word = prompt("Word to translate(lower case only):");
// Run translation
translate(word);

演示: http: //jsfiddle.net/W8eFp/1(我有演示使用alert而不是console.log。您可以单击顶部的 RUN 再次运行提示。)

于 2013-09-07T01:11:31.063 回答