繁体   English   中英

将字符串与新创建的布尔值列表进行比较而不循环,

[英]Compare a string against a list of newly created booleans without looping,

我已经在javascript中创建了一个新的布尔值列表,它们属于不同语言(真,假,verdadero,falso,ratt,fel等)中的布尔值。

我这样做是:

var false_swedish = new Boolean("fel");

等等。

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

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

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

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

然后使用该函数向带有prototype String添加一个新method ,因此我可以根据prompt提供的字符串进行检查。 但是当然,该函数没有用,因为它假定变量可能是布尔值,而实际上不是。 他们总是弦乐...

我是不是想太多复杂?

谢谢你的任何想法

是的,您正在尝试使其过于复杂。

new Boolean("any string")是没有用的,因为对于任何非空字符串,结果变量将为true。 如果您的目标是检查用户仅输入了'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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM