簡體   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