【发布时间】:2017-06-09 14:13:55
【问题描述】:
我刚刚为我遇到的问题创建了一个基本用例,我将从客户端获得 searchStr 关键字数组对象,我将检查所有搜索关键字是否仅与行匹配,而不是将行推送到 results。下面的代码总是返回results的空数组,如何解决这个问题或任何更好的方法来完成这个任务?
搜索.js
var line = "ticketNumber:45287,Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer "
var searchStr = [{
"text": "45287"
}, {
"text": "standard"
}]
var results = [];
function matchSearchStr(line, searchStrArray) {
for (var i = 0; i < searchStrArray.length; i++) {
if (line.toLowerCase().indexOf(searchStrArray[i].toLowerCase()) != -1) {
results.push({
filename: "file",
value: line
});
console.log(results);
}
}
}
matchSearchStr(line, searchStr)
【问题讨论】:
-
有什么理由不写
searchStr = ["45287", "standard"]? -
我正在使用 Angular
ngInputTags在您输入关键字时创建数组对象 -
不相关,但不使用全局变量,而是在搜索函数中创建
results并返回它。 -
同样不相关,但使用当前算法会得到重复的结果。
-
我可以得到适当的解决方案来解决我在过去 2 小时被卡住的问题..
标签: javascript arrays algorithm search