码迷,mamicode.com
首页 > 编程语言 > 详细

城市搜索历史问题(对象数组去重)

时间:2019-08-17 01:06:05      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:元素   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!