搜素暂存的历史记录,最多5条历史记录
<!-- 搜索框 -->
<form>
<view class="search">
<image src="/images/search.png"></image>
<input maxlength="20" placeholder="搜索海量商品" confirm-type="search" value="{{Replymessage}}" bindconfirm="inputTyping" confirm-type="search" />
</view>
</form>
<view class="block" hidden="{{!inputShowed}}" >
<view class="top">
<view class="title">最近搜索</view>
<image bindtap="delete" class="deleteicon" src="/images/order/del.png"></image>
</view>
<view class="row">
<block wx:if="{{searchRecord.length>0}}">
<view class="item" wx:for="{{searchRecord}}" wx:key="index" bindtap="slideToList" data-keyword="{{item.value}}">{{item.value}}</view>
</block >
<view wx:else class="no-record">你还没有搜索记录</view>
</view>
</view>
js部分
data: {
hotsearch: [],
searchRecord: [],
},
onLoad: function (options) {
this.openHistorySearch()
},
openHistorySearch: function () {//获取历史记录
this.setData({
searchRecord: wx.getStorageSync('searchRecord') || [],//若无储存则为空
})
},
inputTyping(e) {
var Replymessage = e.detail.value;
var searchRecord = this.data.searchRecord;
if (Replymessage == '') {
swan.showToast({
title: '请输入要搜索的内容!',
icon: 'none'
});
}else{
var index = this.functiontofindIndexByKeyValue(searchRecord, "value", Replymessage)//查询输入的关键词在历史记录中是否存在
if (index == null){//当不存在时加到数组中
//将搜索值放入历史记录中,只能放前五条
if (searchRecord.length < 5) {
searchRecord.unshift({
value: Replymessage,
id: searchRecord.length
})
}else {
searchRecord.pop()//删掉旧的时间最早的第一条
searchRecord.unshift({
value: Replymessage,
id: searchRecord.length
})
}
//将历史记录数组整体储存到缓存中
wx.setStorageSync('searchRecord', searchRecord)
}else{//否则将这个关键字移到最前面
var data = searchRecord[index];
searchRecord.splice(index,1);
searchRecord.unshift(data);
wx.setStorageSync('searchRecord', searchRecord)
}
wx.navigateTo({
url: '/pages/list/list?keyword=' + Replymessage,
})
}
},
functiontofindIndexByKeyValue: function(arraytosearch, key, valuetosearch) {
for(var i = 0; i<arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
},
//删除历史记录
delete: function () {
wx.clearStorageSync('searhRecord')
this.setData({
searchRecord: []
})
},
https://blog.csdn.net/weixin_41531446/article/details/81116075