我正在製作一些化學遊戲,將其作爲JavaScript中的一個Telegram機器人,其中包含庫存,您需要混合正確的化學物質。我的庫存包含在一個數組中,爲了防止通過簡單地粘貼庫存來強制你的方式達到某個級別,我需要檢查用戶輸入是否僅包含所需的化學物質,而不是包含所需的化學物質陣列。如何檢查一個字符串是否包含某個數組中的某個元素,但不包含其他元素
例如:
users[id].inventory = ["Beaker", "Water", "Baking soda", "Heating plate", "Hydrochloric acid"];
if (users[id].level === 1 &&
msg.text.toLowerCase().indexOf('baking soda') !== -1 &&
msg.text.toLowerCase().indexOf('hydrochloric acid') !== -1 &&
msg.text.toLowerCase().indexOf('beaker') === -1 &&
msg.text.toLowerCase().indexOf('water') === -1 &&
msg.text.toLowerCase().indexOf('heating plate') === -1) {
msg.answer("You mix some baking soda with hydrochloric acid.\nSome fun fizzing happens and you produce useless CO2 gas.");
}
在海格的水平,你會得到一個更大的庫存,這將導致非常大的if語句這樣。這看起來很糟糕,必須有更好的方法。有沒有像獨家indexOf()
或任何其他解決方案?我已經檢查了arr.filter()
例如,但我找不到一個很好的方法來實現這一點。
您是否嘗試過使用一個循環來遍歷數組了嗎? – nnnnnn