【问题标题】:.includes() Checking for keywords in prompt().includes() 检查 prompt() 中的关键字
【发布时间】:2020-03-26 11:13:31
【问题描述】:

我正在创建一种聊天机器人,它将在存储在数组中的嵌入关键字上运行,在此示例中,我在 y 中检查了数组 x。每当我在prompt() 中准确键入Hello 时,这都会返回true。但是,如果我要在提示符中说出类似 “Oh Hello There.” 的内容,它会返回 false。如何在prompt()(句子之间)的数组中检查关键字

var x = ['Hello', 'Hi', 'Sup'];
var y = prompt("Looking for a Hello...");

if (x.includes(y)){
    alert("You Said Hello!");
} else {
    alert("No Hello Found!");
}

【问题讨论】:

  • if( x.some(word=>y.includes(x)))
  • 上述方法不起作用,因为它正在检查整个数组的包含情况

标签: javascript arrays prompt


【解决方案1】:

您需要检查每个单词,或者使用像这个 sn-p 中这样的正则表达式

var x = ['Hello', 'Hi', 'Sup'];
var y = prompt("Looking for a Hello...");

var containsX = x.some(word=>y.includes(word))

if (containsX){
    alert("You Said Hello!");
} else {
    alert("No Hello Found!");
}

【讨论】:

    【解决方案2】:

    尝试使用indexof

    As mdn says:

    indexOf() 方法返回调用字符串中的索引 指定值第一次出现的对象,开始 在 fromIndex 处搜索。如果未找到该值,则返回 -1。

    let x = ['Hello', 'Hi', 'Sup'];
    let y = "Looking for a Hello...";
    
    console.log(x.some(s=> y.indexOf(s)));

    【讨论】:

      猜你喜欢
      • 2020-09-25
      • 1970-01-01
      • 2012-01-24
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      相关资源
      最近更新 更多