小程序实现搜索历史记录,去重搜索字段以及限制展示字段数量

2023-10-27

  • 使用微信小程序实现搜索历史记录,去重搜索字段,限制字段数量以及点击重新搜索功能。
  • 在这里插入图片描述

对应界面

  <view class="search-left">
      <view class="search-icon"></view>
      <input 
          class="search-input" 
          bindinput="bindKeyInput" 
          bindconfirm="OnSearch" 
          type="text" 
          value="{{content}}"
          placeholder="输入内容或关键词"
        />
        <block wx:if="{{isInputText}}">
          <view class="search-close" catchtap="inputClose">
              <text>x</text>
          </view>
        </block>
      
  </view>
  <view class="search-right" bindtap="OnSearch">
      <text>搜索</text>
  </view>

点击搜索逻辑功能首先获取搜索的记录数组,搜索历史需要展示几个,对于重复的搜索字段不再存储


OnSearch() {
  let searchRecord = o.data.searchRecord //获取搜索存储的数据
  let content = this.data.content; //input的value值
  if (content != '') {
    if (searchRecord.length <= 5) {
      // 判断数组中是否已存在
      var newArr = searchRecord.findIndex (item =>{
          return item.title === this.data.content;
      });
      if (newArr != -1) {
          // 删除已存在后重新插入至数组
          searchRecord.splice(newArr, 1)
          searchRecord.unshift({ title:e })
      } else {
          searchRecord.unshift({ title:e })
        }
    }  else if (searchRecord.length == 0){
        searchRecord.unshift({ title:e })
    } else {
        console.log(searchRecord,'searchRecordsearchRecord')
        searchRecord.pop()//删掉旧的时间最早的第一条
        searchRecord.unshift({ title:e })
    }

    wx.setStorageSync('historyList', searchRecord)
    o.getHistorySearch() 
  } else {
    wx.showModal({
        title: "提示",
        content: "请输入要搜索的关键词"
    });
  }
  
}

获取存储的历史记录,在onLoad生命周期调用

  getHistorySearch() {
      this.setData({
        searchRecord: wx.getStorageSync('historyList') || [] //若无存储则为空
      })
  },

清除历史记录

  hisDel(){
        wx.clearStorageSync('historyList')
        this.setData({
            searchRecord: []
        })
    },

点击搜索的字段,再次搜索,获取点击的是哪个字段,传递过去,重新调用OnSearch方法

  historyClick(e){
        let name = e.currentTarget.dataset.item.title
        if (name) {
            this.setData({
                content:name
            })
            this.OnSearch()
        }
    },
  • 微信扫码搜索工程狮小周。点击技术交流,带你进入微信交流群,一起学习交流前端知识.

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小程序实现搜索历史记录,去重搜索字段以及限制展示字段数量 的相关文章

随机推荐

  • 递归解题思维

    目录 开篇 用递归解题的意义 递归思维与数学归纳法 递归解题的类型 递归结题步骤 递归例题 1 求N阶乘 2 找出数组中的最小值 3 字符串翻转 小结 开篇 网上关于如何用递归解决问题方法的文章很多了 看了一些 我也来谈谈我的看法 很多文章
  • elementui 更换主题色

    定义CSS变量 由var 函数来获取值 设定值 root background color FF0000 获取值 div background color var background color JS获取变量 const element
  • c语言进行菜单制作

    include stdlib h include
  • Lecture11: (增强)拉格朗日松弛技术

    目录 1 理论背景 2 数学分析 3 LR计算案例 3 1 分解 3 2 算法 4 ALR计算案例 4 1 主要思想 4 2 ADMM 当你的问题中包含复杂约束时 你可能需要该方法 本节目标 阐述拉格朗日松弛 增强拉格朗日松弛和交替方向乘子
  • Ubuntu22.04安装Git及配置

    Git安装配置 apt get install git 安装Git git version 安装成功后显示版本 git version 2 34 1 git config global user name name 配置用户名 git co
  • Scrapy之CsvItemExporter生成的CSV文件乱码解决

    环境信息 Python 3 6 5 Scrapy 2 2 导出文件逻辑 self file open Users chenjunfeng02 Downloads enrolldata csv wb self exporter CsvItem
  • 【电脑蓝屏】—— inaccessible boot device

    文章目录 一 问题描述 二 问题出现场景及原因分析 1 重装系统后出现该蓝屏情况 三 问题解决方法 附件 一 问题描述 蓝屏提示 inaccessible boot device 二 问题出现场景及原因分析 1 重装系统后出现该蓝屏情况 设
  • 【matlab深度学习工具箱】classificationLayer参数详解

    classificationLayer 文章目录 classificationLayer 语法 描述 例子 创建分类图层 创建加权分类图层 输入参数 名称 值参数 Name 图层名称 默认 字符向量 字符串标量 ClassWeights 加
  • 多元回归预测

    文章目录 效果一览 文章概述 部分源码 参考资料 效果一览 文章概述 多元回归预测 Matlab基于粒子群算法 PSO 优化径向基神经网络 PSO RBF 的数据回归预测 多变量输入模 评价指标包括 MAE RMSE和R2等 代码质量极高
  • 眼底图像血管分割学习笔记

    一 图像处理 训练集的图片格式为tif 其中相应的分割标签格式 为gif 一开始想着这些图片是不是都要先转换成 jpg或者 png 在查阅了一些资料后其实还是不太清楚 然后在看别人的代码时 发现没有处理 所以就先这样弄着 出现的问题 cla
  • Centos7 上的sqlite3安装及升级

    一 wget升级 yum install y wget 二 sqlite3安装 sudo yum install sqlite devel 查看sqlite3的版本 sqlite3 version 三 sqlite3升级 下载源码 wget
  • 试试这两个方法,做视频二次剪辑并不难,新手一天可以收入200

    很多新手看到别人每天做短视频一个月有过万 几万的收益 看到别人能赚钱 觉得自己可能赚不到这么多 赚个7 8千应该没问题 于是开始自己学着也做起了短视频自媒体 每天埋头苦干 但每天的收益却很低 只有几块 几十 有的甚至更少 跟自己想象的完全不
  • 部署Promethuse监控Hadoop节点

    部署Promethuse监控Hadoop节点 目标 安装 将hadoop的jmx信息采集到指定端口 配置prometheus 其他说明 目标 Hadoop本身是对相当数量的指标 metrics 进行实时监控的 但是Hadoop本身并不提供方
  • Java多线程详解及示例

    Java多线程详解 摘要 本文将深入探讨Java多线程编程的重要性和使用方法 介绍多线程概念 讨论多线程的优势 并提供实际示例 此外 还将探讨多线程编程中的常见问题以及如何避免这些问题 通过本文 您将获得对Java多线程编程的全面理解和实践
  • html5 游戏 动画设计,HTML5 Canvas 动画实例

    原标题 HTML5 Canvas 动画实例 在开发在线游戏时 绘制动画是非常重要的 本节介绍一个使用 Canvas API 实现的动画实例 游戏人物的跑步动画 动画的概念及原理 1 动画 动画是通过一幅幅静止的 内容不同的画面 即帧 快速播
  • 【六祎-JS特效】页面JS特效背景

    JS代码
  • Python3中strip()、lstrip()、rstrip()用法详解

    Python中有三个去除头尾字符 空白符的函数 它们依次为 strip 用来去除头尾字符 空白符 包括 n r t 即 换行 回车 制表符 空格 lstrip 用来去除开头字符 空白符 包括 n r t 即 换行 回车 制表符 空格 rst
  • 流式计算简介

    1 数据的时效性 日常工作中 我们一般会先把数据存储在一张表中 然后对这张表的数据进行加工 分析 那这里是先存储在表中 那就会涉及到时效性这个概念 如果我们处理以年 月为单位的级别的数据处理 进行统计分析 个性化推荐 那么数据的的最新日期离
  • Docker容器学习笔记

    目录 一 初始Docker 1 1Docker的概念 1 2Docker的安装 1 3Docker的架构 1 4Docker配置镜像加速器 二 Docker命令 2 1服务相关的命令 2 2镜像相关命令 2 3容器相关命令 三 Docker
  • 小程序实现搜索历史记录,去重搜索字段以及限制展示字段数量

    使用微信小程序实现搜索历史记录 去重搜索字段 限制字段数量以及点击重新搜索功能 对应界面