0

我在 javascript 中创建了一个新布尔值列表,属于不同语言的布尔值(true、false、verdadero、falso、ratt、fel 等......)

我已经这样做了:

var false_swedish = new Boolean("fel");

等等。

我正在尝试编写一个小型文本游戏作为一种拼图来学习(我是初学者),所以我被困在这里。现在我的目标是:由于我有一个包含 10 个新布尔值的列表,我如何将它们与字符串(用户使用 a 写入的内容prompt)进行比较?

我首先考虑创建一个包含所有新单词的数组,然后将它们与字符串进行比较,但这违背了将它们声明为新布尔值并确定用户输入是否为布尔值的意义,在这里我不是很感兴趣最终结果,但更多的是在做的过程中(正如我所说,只是一个学习练习)

我已经创建了一个检查变量是否为布尔值的函数,基本上使用:

if (value.constructor == Boolean ){
    return true;

然后使用该函数向methodString 添加一个新的prototype,所以我可以检查提供的字符串prompt。但当然,该函数是无用的,因为它假设变量可能是布尔值,而它们不是。它们总是字符串...

我是不是想把它复杂化太多了?

感谢您的任何想法

4

1 回答 1

0

是的,你试图让它复杂化太多。

new Boolean("any string")是无用的,因为对于任何非空字符串,结果变量都会为真。如果您的目标是检查用户是否输入'true'false'最好的解决方案是将他的输入与'true'. 但是如果有很多可能的输入,你可以使用一个对象:

// this object contains every string value you want to include in your script defined by a number
var predefinedValues = {'true': 1, 'false': 0, 'verdadero':1, 'falso':0};
// i assume userInput contains user input
if(predefinedValues[userInput] == 1) {
    //true
}
else {
    //false or not found in array
}
于 2012-10-31T23:28:11.693 回答