标签:元素 cal slice font 循环数组 记录 ons unshift str
一、问题
城市搜索历史问题(历史记录保存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);
标签:元素 cal slice font 循环数组 记录 ons unshift str
原文地址:https://www.cnblogs.com/xinghong/p/11366837.html