【问题标题】:Javascript bot different triggers for responsesJavascript bot不同的响应触发器
【发布时间】:2019-03-04 03:39:43
【问题描述】:

我创建了一个简单的 javascript 机器人,我正在尝试找出一种方法来为某个响应添加另一个触发器,而无需创建新数组。 下面的代码就是这样,在逗号(“hi”,)之前是触发器,在逗号(“hello”)之后是机器人编程响应的内容。我一直在试图找出一种方法来添加更多触发器,这样如果用户输入“hey”而不是“hi”,机器人仍然会以“hello”响应。我似乎无法弄清楚该怎么做。非常感谢您的帮助!

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

【问题讨论】:

  • 看起来你需要一个树结构而不是一个数组

标签: javascript bots


【解决方案1】:

您应该使用两个 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 = {} 中使用大括号创建字典,可以添加键和值,如上例所示。

编程中的字典数据类型就像一个真正的字典,它针对通过键快速查找值进行了优化。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2021-04-17
    • 2021-06-23
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多