我在javascript中创建了一个新的布尔列表,属于不同语言的布尔值(true,false,verdadero,falso,ratt,fel等...)
我这样做了:
var false_swedish = new Boolean("fel");
与许多其他人一起等等。
我正在尝试将一个小型文字游戏编写为一种学习难题(我非常初学者),所以我被困在这里。现在我的目标是:由于我有一个包含10个新布尔值的列表,如何将它们与字符串进行比较(用户使用prompt
编写的内容)?
我首先想到的是创建一个包含所有新单词的数组,然后将它们与字符串进行比较,但是这会将它们声明为新的布尔值,并查明用户输入是否为布尔值,这里我不是对最终结果非常感兴趣,但更多的是在做这个过程中(正如我所说,只是一个学习的练习)
我创建了一个检查变量是否为布尔值的函数,基本上使用:
if (value.constructor == Boolean ){
return true;
然后使用该函数将新method
添加到带prototype
的String,这样我就可以检查prompt
提供的字符串。但是,当然,这个函数是没用的,因为它假设变量可能是布尔值,而它们不是。他们总是串起来......
我是否试图将其复杂化太多?
感谢您的任何想法
答案 0 :(得分: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
}