我有这个数组。
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);
}
}
有人可以在这个问题上帮助我
答案 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);