蓝桥杯前端Web赛道-输入搜索联想

蓝桥杯前端Web赛道-输入搜索联想

题目链接:1.输入搜索联想 - 蓝桥云课 (lanqiao.cn)

题目要求:

在这里插入图片描述

题目中还包含effect.gif 更详细的说明了需求

那么观察这道题需要做两件事情

  • 把表头的每一个字母进行大写
  • 进行模糊查询

这里我们会用到几个js函数,slice()includes()filter()toUpperCasetoLowerCase

Array.prototype.slice() - JavaScript | MDN (mozilla.org)

Array.prototype.includes() - JavaScript | MDN (mozilla.org)

Array.prototype.filter() - JavaScript | MDN (mozilla.org)

String.prototype.toUpperCase() - JavaScript | MDN (mozilla.org)

String.prototype.toLowerCase() - JavaScript | MDN (mozilla.org)

以上链接可以让大家再复习一下这三个函数的用法,这里我分享一个小技巧,如果你实在记不住对于slice()的用法

可以直接在网页使用f12,在控制台上直接输入代码,会有非常清楚的提示,下面是动画演示,其实其他的函数也可以靠这个方法来试出它的用法,但是前提是你知道过这个函数怎么用,这只是起到一个让记忆回笼的作用

在这里插入图片描述

那么我们先完成第一个要求:将表头的首字母变成大写

思路如下,将原先单词的第一个字母变成大写字母,然后把剩下的字母都拼接在一起

代码如下:

 <td v-for="col in columns">{{col.slice(0,1).toUpperCase() + col.slice(1)}}</td>

vue{{}}内部也可以做计算,我们可以直接在原地添加即可,上面的动画已经演示过如何使用技巧取出我们需要的值,这里就不过多赘述。

下一个要求是进行模糊查询,我们可以使用filter()函数,然后利用includes()进行判断的条件,该函数会返回truefalse,而filter()也不会影响到原数据内容。

代码如下

<tr v-for="entry in this.data.filter((item)=>item.name.toLowerCase().includes(this.searchQuery.toLowerCase()))"><td v-for="col in columns">{{entry[col]}}</td></tr>

我们可以看到,vue是可以在v-for上直接计算再进行遍历的,为什么要再这个地方进行一次toLowerCase()呢,其实这是题目的一个要求之一,因为题目要求的模糊查询是无视大小写的,所以我们可以“曲线救国”,干脆在进行判断的时候,就把当前需要进行查询的字段name全都变为小写,然后再把输入的内容也都全部变为小写,这样操作也不会让原先的数据变化。

所以只需要判断当前的name是否含有input的内容,如果包含就返回true,然后通过filter函数,找到所有满足这个条件的内容,并把这个内容作为一个数组进行返回,所以我们可以正常的在页面显示

至此达到题目要求,值得注意的是不要忘了在input框对数据进行绑定,不然不会生效哦

  <input placeholder="输入要搜索的名字" v-model="searchQuery"/>

完整代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>输入搜索联想</title><style type="text/css">#app {width: 400px;height: 400px;margin: 50px auto;}table {border-collapse: collapse;border: 1px solid black;margin-top: 20px;}thead tr {background: #4d83d6;color: #fff;}tr td {width: 80px;line-height: 30px;text-align: center;}tbody tr:nth-child(2n) {background: #efefef;}</style><script type="text/javascript" src="./js/vue.js"></script></head><body><div id="app"><!-- TODO:请在下面实现需求 --><span>搜索名字: </span><input placeholder="输入要搜索的名字" v-model="searchQuery"/><table><thead><tr><td v-for="col in columns">{{col.slice(0,1).toUpperCase() + col.slice(1)}}</td></tr></thead><tbody><tr v-for="entry in this.data.filter((item)=>item.name.toLowerCase().includes(this.searchQuery.toLowerCase()))"><td v-for="col in columns">{{entry[col]}}</td></tr></tbody></table></div></body>
</html>
<script>// TODO:请在下面实现需求new Vue({el: "#app",// 注意:请勿修改 data 选项中的数据!!!data: {searchQuery: "",columns: ["name", "gender", "age"],data: [{name: "rick",gender: "male",age: 21,},{name: "demen",gender: "male",age: 26,},{name: "Jack",gender: "male",age: 26,},{name: "John",gender: "female",age: 20,},{name: "Lucy",gender: "female",age: 16,},],},});
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/539482.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python引入其他文件作为包

1.首先当我们写的代码&#xff0c;可能要被其他文件引用&#xff0c;那么在建文件夹的时候&#xff0c;记得选包 不是文件夹&#xff01;&#xff08;选第4个&#xff0c;不是第3个&#xff09; 因为文件夹默认没有init 方法&#xff0c;不能导包... 如果已经是文件夹了&#…

ChatGPT赋能遥感研究:精准分析处理遥感影像数据,推动科研新突破

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能在解…

python flask服务如何注册到nacos

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 背景 shigen之前遇到了一个服务&#xff0c;需要结合nacos Spring security实现…

Ps 滤镜:中间值

Ps菜单&#xff1a;滤镜/杂色/中间值 Filter/Noise/Median 中间值 Median滤镜可用于减少或消除图像中的噪点和杂色&#xff0c;同时能较好地保留图像边缘和细节信息。 中间值滤镜通过计算一个像素周围一定区域内的像素值的中间值&#xff08;即这些值的中位数&#xff09;&…

叶顺舟:手机SoC音频趋势洞察与端侧AI技术探讨 | 演讲嘉宾公布

后续将陆续揭秘更多演讲嘉宾&#xff01; 请持续关注&#xff01; 2024中国国际音频产业大会(GAS)将于2024年3.27 - 28日在上海张江科学会堂举办。大会将以“音无界&#xff0c;未来&#xff08;Audio&#xff0c; Future&#xff09;”为主题。大会由中国电子音响行业协会、上…

<Senior High School Math>: inequality question

( 1 ) . o m i t (1). omit (1).omit ( 2 ) . ( a 2 − b 2 ) ( x 2 a 2 − y 2 b 2 ) ( x 2 y 2 ) − ( a 2 y 2 b 2 b 2 x 2 a 2 ) ≤ x 2 y 2 − 2 x y ( x − y ) 2 (2). (a^2-b^2)(\frac{x^2}{a^2} - \frac{y^2}{b^2})(x^2y^2)-(\frac{a^2y^2}{b^2}\frac{b^2x^2}{a^…

Java基于 Springboot+Vue 的招生管理系统,前后端分离

博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Python Web开发记录 Day10:Django part4 靓号管理与优化

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、数据库准备2、靓号列表3、新建靓号4、编辑靓…

Java高级编程—泛型

文章目录 1.为什么要有泛型 (Generic)1.1 泛型的概念1.2 使用泛型后的好处 2.在集合中使用泛型3.自定义泛型结构3.1 自定义泛型类、泛型接口3.2 自定义泛型方法 4.泛型在继承上的体现5.通配符的使用5.1 基本使用5.2 有限制的通配符的使用 1.为什么要有泛型 (Generic) Java中的…

SpringMVC请求、响应和拦截器的使用

SpringMVC请求 RequestMapping注解 RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系 RequestMapping注解可以作用在方法和类上 1. 作用在类上&#xff1a;第一级的访问目录 2. 作用在方法上&#xff1a;第二级的访问目录 3. 细节&#xff1a;路径可以不编写…

Qt学习--QT Creator使用基本介绍

话不多说&#xff0c;直接开搞&#xff0c;笔者用的是5.12.9版本 双击打开QT Creator 显示这个界面 新建工程 然后出现这样的界面 点击运行 就弹出了一个这个&#xff0c;空的&#xff0c;因为我们啥也没写

C++算法学习心得八.动态规划算法(2)

1.不同路径 II&#xff08;63题&#xff09; 题目描述&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finis…