首页 > 解决方案 > JavaScript 2D 数组,如果输入 RegEx 匹配 col1 ,则返回 col2

问题描述

我试图设置一个聊天机器人,当用户输入匹配某个单词时,它会做出相应的响应。

这行得通

  var input = "i love you";
  
  if(/.*cute.*/.test(input)) { alert("Aw.... so sweet");}
  if(/.*love.*/.test(input)) { alert("Love you too");}

//result "Love you too"

但是,我怎样才能将数据放在一个数组中并且仍然可以工作?

例子:

var queryResponse = [ ["cute","Aw.... so sweet"],
                      ["love","Love you too"] ];

如何修改这一行?

 if(/.*  (what should i insert here?) .*/.test(input)) { alert(So that the response appear here?);}

标签: javascriptarrayschatbot

解决方案


每个键和值的索引应该匹配

var keys=['cute','love'];
var values= ['so cute', 'i love you'];
        
for(var i = 0; i < keys.length ; i++){
        
   let re = new RegExp(`.*${keys[i]}*.`);
    
   if(re.test(input){
        alert(values[i]);
        break;
   }
}

推荐阅读