使用给定用户搜索字符串数组并返回匹配字符串数组的索引

时间:2016-06-04 10:36:45

标签: javascript arrays

我有这个数组。

var possibleValues=["contacts","delete","new contact","add","display"];

用户输入可以是“联系人”或“如何创建联系人?”。我的函数必须将索引返回为0,其中有一个短语联系人。我正在尝试逻辑但我无法找到。我有什么目前已完成

var indexes = [];
for (i = 0; i < possibleValues.length; i++) {
  if (arr[i].indexOf(userinput) != -1 || userinput.indexOf(arr[i])!=-1) {
    indexes.push(i);
  }
}

有人可以在这个问题上帮助我

1 个答案:

答案 0 :(得分:0)

您的代码几乎是正确的。但您必须与-1进行比较,而不是1。而您使用arr[i]代替possibleValues[i]

如果你想匹配用户输入中的每个单词,你需要将其拆分,然后添加另一个嵌套循环。

var possibleValues = ["contacts", "delete", "new contact", "add", "display"];
var userinput = "how to create contact";
var words = userinput.split(' ');
var indexes = [];
for (i = 0; i < possibleValues.length; i++) {
  for (var j = 0; j < words.length; j++) {
    if (possibleValues[i].indexOf(words[j]) != -1 || words[j].indexOf(possibleValues[i]) != -1) {
      indexes.push(i);
      break;
    }
  }
}
console.log(indexes);