刚刚看完历史搜索.假如缓存中有十次搜索记录其中队列末尾是"金庸",当用户再搜索一次金庸之后,因为队列中有金庸了

来源: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

1
0

精慕门0241520

2022-09-21

你是一个有产品意识的开发者啊!

0
0

7七月

2018-12-22

这些设定没有什么合理或者不合理,都在于你是怎么想。如果想让这个代码更复杂,那你的想法也是没问题的。

0
0

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4791 学习 · 2133 问题

查看课程