刚刚看完历史搜索.假如缓存中有十次搜索记录其中队列末尾是"金庸",当用户再搜索一次金庸之后,因为队列中有金庸了
来源:14-6 队列测试
danieldcool
2018-12-21
刚刚看完历史搜索.假如缓存中有十次搜索记录其中队列末尾是"金庸",当用户再搜索一次金庸之后,因为队列中有金庸了,所以不会新加入队列.这时用户再搜索一次其他内容,队列末尾的金庸就被移除队列了,这样历史记录就看不到金庸了.但实际上金庸是刚刚才被用户搜索过的内容.这样看起来是不合理的.是不是应该检测到队列中有已经搜索过的内容,应该将这个内容移动到队列的头部.
写回答
3回答
-
悟酱起飞
2019-09-12
// 设置存入历史搜索缓存 setHistorys(value){ // 没有value,不添加 if(value == null) return; // 获取缓存中的historys let historys = this.getHistorys(); // 缓存中有value,先从historys删除此value const index = historys.indexOf(value); if(index > -1){ historys.splice(index, 1); } // 然后将此value加入到第一位 historys.unshift(value); // 数量做限制 historys = historys.slice(0, this.maxLength); // 存入到缓存 wx.setStorageSync(this.key, historys); }当然,你可以这样写,如老师所说,你想做成什么样,do it
10 -
精慕门0241520
2022-09-21
你是一个有产品意识的开发者啊!
00 -
7七月
2018-12-22
这些设定没有什么合理或者不合理,都在于你是怎么想。如果想让这个代码更复杂,那你的想法也是没问题的。
00