[英]How do I check if users input is equal to a certain value in my array?
嗨,我目前正在制作一個簡單版本的聊天機器人,但我的代碼有一些問題。 我想檢查用戶輸入是否等於數組中的值。 我目前擁有的看起來像這樣:
var digibord = [
{
name: ["digibord","smartboard","schoolbord"]
}
]
function handleMessage(message) {
if (message.includes(digibord)) {
Digibord();
}
}
正如你所看到的,我對 javascript 的經驗很少,所以我可以使用一些幫助......
您可以簡單地使用forEach
:
var digibord = [ { name: ["digibord","smartboard","schoolbord"] } ]; function handleMessage(message) { digibord.forEach((value, index) => { if (value.name.includes(message)) { //Digibord(); console.log(message); } }); } handleMessage("digibord");
您需要做的就是檢查消息是否存在於您的預定義數組中。 如果未找到indexOf
返回 -1。
if (digibord.indexOf(message) > -1) {
//In the array!
} else {
//Not in the array
}
我認為在聊天機器人的情況下,您可能想改用正則表達式
var digibord = [{
name: ["digibord","smartboard","schoolbord"]
}];
function handleMessage(message) {
for (item in digibord[0].name) {
var re = new RegExp( item, "g" );
if (re.test(item)) {
// Do whatever you want
}
}
}
只是為了幫助你一點:你的 digibord 是一個對象數組 - 在你的情況下只有一個對象。 對象成員“名稱”是名稱數組。 要處理此名稱數組,您需要:digibord[0].name,如 teeyo 示例中所示。 “includes”是數組的一個方法。 因此,您的代碼可能如下所示:
var digibord = [
{
name: ["digibord","smartboard","schoolbord"]
}
];
function handleMessage(message) {
if (digibord[0].name.includes(message)) {
Digibord();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.