【发布时间】:2019-04-25 19:52:24
【问题描述】:
我正在尝试编写一个算法来保存最近搜索的关键字。问题是用户没有触发搜索,而是每次键入内容时都会触发搜索。目前,我正在尝试保存最后搜索的关键字并检查下一个是否从最后一个开始以丢弃最后一个。
async _persistSearch(term) {
const serachLog = await this._getLastSearchedFile()
console.log("[SEARCH]", serachLog);
if (Object.keys(serachLog) == 0) {
serachLog.searches = [term];
serachLog.lastUpdated = Date.now()
} else if (term.startsWith(this.lastSearhed)) {
const toPersist = serachLog.searches.filter((value) => value != this.lastSearhed).push(term);
serachLog.searches = toPersist;
} else {
serachLog.searches.push(term);
}
this.lastSearhed = term;
await writeJSONFile(this.searchesFile, serachLog);
}
例如对于输入 [so, som, some, somet, someth,somethi, somethin, something, somethin] 为 [something]
【问题讨论】:
-
这听起来像是您需要去抖动您的搜索输入?知道所有以前的搜索词有什么价值?
-
谢谢,去抖效果很好
-
通常会,很高兴我能提供帮助
标签: javascript algorithm search