JavaScript机器人响应的不同触发器

时间:2019-03-03 19:18:44

标签: javascript bots

我已经创建了一个简单的javascript机器人,并且试图找到一种无需创建新数组即可为特定响应添加另一个触发器的方法。 如下代码是这样,在逗号(“ hi”,)被触发之前,在逗号(“ hello”)之后是机器人被编程为响应的内容。我一直在尝试找到一种添加更多触发器的方法,以便如果用户键入“ hey”而不是“ hi”,则该机器人仍会以“ hello”响应。我似乎不知道该怎么做。帮助将不胜感激!

var convpatterns = new Array(
  new Array("Hi", "Hello."),
  new Array("How are you?", "Good. How are you?"),

1 个答案:

答案 0 :(得分:0)

您应该使用两个JavaScript字典,将它们包装在一个对象中,就像这样。

function Chatter() {
  var self = this;
  self.responses = {
    0: 'hello',
    1: 'Good, how are you?',
    4096: 'Say what!?'
  };
  self.triggers = {
    'hi': self.responses[0],
    'hey': self.responses[0],
    'How are you?': self.responses[1]
  }
  self.converse = function(input) {
      if(input in self.triggers) {
          return self.triggers[input];
      }
      return self.responses[4096];
  }
}

chatter = new Chatter();
console.log(chatter.converse('hi'));
console.log(chatter.converse('asd'));
console.log(chatter.converse('hey'));

可以在javascript var myDictVar = {}中使用大括号创建字典,如上例所示,可以添加键和值。

编程中的字典数据类型就像一本真正的字典,它经过优化,可通过键快速查找值。