js需要把搜索词组成json格式放入本地缓存,但是现在新增是覆盖不是追加,求解?
需求:
把每次搜索的关键词组成json格式放入localstorage,然后加载这个json做成搜索历史,目前的问题是没一次放入localstorage都是新增覆盖了之前的(如下图),需要的是追加,求解!
// 新增搜索词存放localStorage
var historyArr=[];
function addSearchList(){
var historyObj = {};
var sInputVal = sInput.val();
if(sInputVal.length != 0){
historyObj.search_name = sInputVal;
historyObj.search_address = 'search-filter.html?search=' + escape(sInputVal);
console.log(historyArr.length);
historyArr.push(historyObj);
localStorage.setItem("searchhistory",JSON.stringify(historyArr));
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
先读取原来的数据,然后和新数据拼接在一起再覆盖不就行了吗。
你这段代码在我本地执行时是正常的,你需要看看是不是哪里有代码会自动将historyArr置空。
谢邀,每次加载页面的时候应该整个读取出来维护,最好只取一次作为唯一的源头,每次更新之后整个保存覆盖。
或者使用其它库处理 https://www.npmjs.com/browse/...
提供给你一个自己写的公共方法,以验证。向localStorage中追加内容,不覆盖,且元素stringify后如果相同,则不追加