簡體   English   中英

如何檢查用戶輸入是否等於數組中的某個值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM