解决搜索历史关键词前后顺序以及关键词重复的问题

本文探讨了如何通过编程技巧优化搜索历史管理,包括使用数组反转策略呈现历史记录,并采用Set数据结构避免关键词重复。通过实例展示了如何在Vue应用中实现这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.解决搜索历史关键字前后顺序的问题:

  1. data中的 historyList 属性,不做任何修改,依然使用push进行末尾追加;

  2. 定义一个计算属性history,将 historyList 数组 reverse 反转之后,就是此计算属性的值;

    computed:{
        history () {
            //由于数组是引用数据类型,所以不要基于原数组调用reverse方法,以免修改原数组中元素的顺序
            //应该新建一个内存无关的数组,再进行reverse反转
            return [...this.historyList].reverse()
        }
    }

3.页面中渲染搜索关键词的时候,不在使用 historyList ,而是使用计算属性 history

二.解决搜索历史关键词重复的问题:

1.注释掉push操作

2.将Array数组转化为 Set对象

const set = new Set(this.historyList)

3.调用 Set 对象的 delete 和 add 方法

set.delete(this.kw)
set.add(this.kw) //先删除后增加确保了当前被搜索的排在第一位

4.将 Set 对象转化为 Array 数组

this.historyList = Array.from(set)

// Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组,也是ES6的新增方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杜coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值