城市搜索历史问题(对象数组去重)
Posted xinghong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了城市搜索历史问题(对象数组去重)相关的知识,希望对你有一定的参考价值。
一、问题
城市搜索历史问题(历史记录保存localStorage)
- 用数组包裹城市对象(包含城市id和name),记录5条,不包含重复的城市,并且把最新的放置数组最前面
- 思路:判断是否有历史记录,即数组为空,空直接放入
- 非空,则判断最新城市对象是否已存在数组中,存在则数组去重并移到数组最前,不存在则直接unshift进数组
- 注意点:判断一个对象元素在数组中是否存在
- 对象数组去重
// eg: 城市搜索历史数组 var list = [ id: ‘0001‘, name: ‘北京‘, id: ‘0002‘, name: ‘上海‘, id: ‘0003‘, name: ‘深圳‘, id: ‘0004‘, name: ‘广州‘ ]; // 最新城市搜索记录 var cityObj = id: ‘0003‘, name: ‘深圳‘ // 方法一:循环数组,用 cityObj 的 id 与 list 的每个元素的 id 比较,-> 相同和不相同 for(var i=0; i<list.length; i++) if(cityObj.id == list[i].id) // 相同的全部删除 list.splice(i, 1); // 删除该元素 i--; list.unshift(cityObj); // 把最新城市搜索记录加入 let historyStr = ‘‘; if(list.length > 5) historyStr = JSON.stringify(list.slice(0, 5)); else historyStr = JSON.stringify(list); console.log(list, historyStr);
以上是关于城市搜索历史问题(对象数组去重)的主要内容,如果未能解决你的问题,请参考以下文章