直播软件搭建,利用精准搜索优化用户搜索体验
精准搜索
核心思想:将用户输入的字符串作为一个整体去与数组的每一项做匹配,把符合的保存下来即可。
这里主要用到的JavaScript
字符串的indexOf()
方法——返回某个指定的字符串值在字符串中首次出现的位置,如果不存在,则返回-1。
有一点需要注意,`indexOf()` 方法对大小写敏感! 另外数组也有一个`indexOf()`方法
下面是上述实例的完整代码,当然实际开发的时候数据肯定没这么简单。我们这里使用的是Vue + Element
实现
<template> <div class="wrapper"> <el-input clearable placeholder="请输入" suffix-icon="el-icon-search" v-model="searchMsg" size="mini" @input="handleSearch(searchMsg)" ></el-input> <el-checkbox-group v-model="checkList"> <div v-for="(item, index) in filterMsg" :key="index"> <el-checkbox :label="item">{{ item.name }}</el-checkbox> </div> </el-checkbox-group> </div> </template> <script> export default { data() { return { searchMsg: "", checkList: [], filterMsg: [] }; }, mounted() { this.allMsg = [ { name: "myhua", id: 1 }, { name: "mp3", id: 2 }, { name: "hello", id: 3 }, { name: "world", id: 4 }, { name: "warm weather", id: 5 }, { name: "m3", id: 6 }, { name: "hahaha", id: 7 } ]; this.filterMsg = this.allMsg; }, methods: { // 搜索方法 handleSearch(queryString) { this.filterMsg = []; this.allMsg.map(item => { if (item.name.indexOf(queryString) !== -1) { this.filterMsg.push(item); } }); } } }; </script>
另外字符串的search()
方法在这里也能实现相同的效果,对大小写敏感
在这里推荐使用includes,这样更语义化一些,自己有点懒这里就没改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-08-10 短视频平台源码开发中实现倒计时,定时任务
2023-08-10 短视频源码技术开发知识:如果固定手机方向
2023-08-10 小视频源码开发中如何截取视频第一帧作为封面
2022-08-10 直播平台开发,Flutter,Drawer侧滑
2022-08-10 直播软件搭建,流式布局,支持单选、多选等
2022-08-10 直播商城源码,Java实现上传图片压缩缩略图
2021-08-10 教你实现一对一直播系统源码自定义图形层次系统