为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查用户输入是否等于数组中的某个值?

如何检查用户输入是否等于数组中的某个值?

拉风的咖菲猫 2022-01-13 10:54:58
我目前正在制作一个简单版本的聊天机器人,但我的代码有一些问题。我想检查用户输入是否等于我数组中的值。我目前拥有的看起来像这样:var digibord = [    {        name: ["digibord","smartboard","schoolbord"]    }]function handleMessage(message) {    if (message.includes(digibord)) {        Digibord();    }}如您所见,我对javascript几乎没有经验,因此可以使用一些帮助...
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以简单地使用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");


查看完整回答
反对 回复 2022-01-13
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我认为对于聊天机器人,您可能想要使用正则表达式


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

        }

    }

}


查看完整回答
反对 回复 2022-01-13
?
潇湘沐

TA贡献1816条经验 获得超6个赞

只是为了帮助你一点:你的 digibord 是一个对象数组 - 在你的情况下只有一个对象。对象成员“名称”是名称的数组。要处理这个名称数组,您需要:digibord[0].name,如 teeyo 示例所示。“包含”是 Array 的一种方法。因此,您的代码可能如下所示:


 var digibord = [

    {

        name: ["digibord","smartboard","schoolbord"]

    }

];


function handleMessage(message) {

if (digibord[0].name.includes(message)) {

    Digibord();

  }

}


查看完整回答
反对 回复 2022-01-13
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信