Vue中的列表操作

news2024/12/19 20:47:27

列表过滤

回顾filter

let arr = [1,2,3,4,5,6,7,8,9]

// filter不会破坏原数组的结构,会生成一个全新的数组。

let newArr = arr.filter((num) => {

//return 过滤规则

return num < 5

})



console.log(newArr)

列表过滤watch属性实现


<body>

<div id="app">

<h1>{{msg}}</h1>

<input type="text" placeholder="请输入搜索关键字" v-model="keyword" />

<table>

<tr>

<th>序号</th>

<th>姓名</th>

<th>薪资</th>

<th>选择</th>

</tr>

<tr v-for="(hero,index) in filteredHeros" :key="hero.id">

<td>{{index+1}}</td>

<td>{{hero.name}}</td>

<td>{{hero.power}}</td>

<td><input type="checkbox" /></td>

</tr>

</table>

</div>

<script>

const vm = new Vue({

el: "#app",

data: {

keyword: "",

msg: "列表过滤",

heros: [

{ id: "101", name: "章三", power: 10000 },

{ id: "102", name: "三响", power: 9000 },

{ id: "103", name: "李四", power: 8000 },

{ id: "104", name: "李章", power: 6000 },

],

filteredHeros: [],

},

watch: {

//有bug,无法一开始就检测

/* keyword(val){

// 执行过滤规则

this.filteredHeros = this.heros.filter((hero) => {

return hero.name.indexOf(val) >= 0

})

} */

//使用完整形式

keyword: {

immediate: true,

handler(val) {

this.filteredHeros = this.heros.filter((hero) => {

return hero.name.indexOf(val) >= 0;

});

},

},

},

});

</script>

</body>

列表过滤computed属性实现

 <body>
    <div id="app">
      <h1>{{msg}}</h1>
      <input type="text" placeholder="请输入搜索关键字" v-model="keyword" />
      <table>
        <tr>
          <th>序号</th>
          <th>姓名</th>
          <th>薪资</th>
          <th>选择</th>
        </tr>
        <tr v-for="(hero,index) in filteredHeros" :key="hero.id">
          <td>{{index+1}}</td>
          <td>{{hero.name}}</td>
          <td>{{hero.power}}</td>
          <td><input type="checkbox" /></td>
        </tr>
      </table>
    </div>
    <script>
      const vm = new Vue({
        el: "#app",
        data: {
          keyword: "",
          msg: "列表过滤",
          heros: [
            { id: "101", name: "章三", power: 10000 },
            { id: "102", name: "三响", power: 9000 },
            { id: "103", name: "李四", power: 8000 },
            { id: "104", name: "李章", power: 11000 },
          ],
        },
        computed: {
          filteredHeros() {
            // 执行过滤
            return this.heros.filter((hero) => {
              return hero.name.indexOf(this.keyword) >= 0;
            });
          },
        },
      });
    </script>
  </body>

列表排序

回顾sort方法

 // 回顾sort方法
      let arr = [8, 9, 5, 4, 1, 2, 3];

      // sort方法排序之后,不会生成一个新的数组,是在原数组的基础之上进行排序,会影响原数组的结构。
      arr.sort((a, b) => {
        // a在前,升序,b在前降序
        return b - a;
      });

      console.log(arr);

列表排序

 <body>
    <div id="app">
      <h1>{{msg}}</h1>
      <input type="text" placeholder="请输入搜索关键字" v-model="keyword" />
      <br />
      <button @click="type = 1">升序</button>
      <button @click="type = 2">降序</button>
      <button @click="type = 0">原序</button>
      <table>
        <tr>
          <th>序号</th>
          <th>英雄</th>
          <th>能量值</th>
          <th>选择</th>
        </tr>
        <tr v-for="(hero,index) in filteredHeros" :key="hero.id">
          <td>{{index+1}}</td>
          <td>{{hero.name}}</td>
          <td>{{hero.power}}</td>
          <td><input type="checkbox" /></td>
        </tr>
      </table>
    </div>
    <script>
      const vm = new Vue({
        el: "#app",
        data: {
          // 定义标识项,1是升序,2是降序,0是原序
          type: 0,
          keyword: "",
          msg: "列表排序",
          heros: [
            { id: "101", name: "章三", power: 10000 },
            { id: "102", name: "三响", power: 9000 },
            { id: "103", name: "李四", power: 8000 },
            { id: "104", name: "李章", power: 11000 },
          ],
        },
        computed: {
          filteredHeros() {
            // 执行过滤  拿到过滤后的数组
            const arr = this.heros.filter((hero) => {
              return hero.name.indexOf(this.keyword) >= 0;
            });
            // 排序,根据type值进行降排序
            if (this.type === 1) {
              arr.sort((a, b) => {
                return a.power - b.power;
              });
            } else if (this.type == 2) {
              arr.sort((a, b) => {
                return b.power - a.power;
              });
            }

            // 返回
            return arr;
          },
        },
      });
    </script>
  </body>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebSpoon9.0(KETTLE的WEB版本)编译 + tomcatdocker部署 + 远程调试教程

前言 Kettle简介 Kettle是一款国外开源的ETL工具&#xff0c;纯Java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装&#xff0c;数据抽取高效稳定 WebSpoon是Kettle的Web版本&#xff0c;由Kettle社区维护&#xff0c;不受Pentaho支持&#xff0c;…

搭建Tomcat(三)---重写service方法

目录 引入 一、在Java中创建一个新的空项目&#xff08;初步搭建&#xff09; 问题&#xff1a; 要求在tomcat软件包下的MyTomcat类中编写main文件&#xff0c;实现在MyTomcat中扫描myweb软件包中的所有Java文件&#xff0c;并返回“WebServlet(url"myFirst")”中…

CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核

1、配置工具 虽然不怎么好用&#xff0c;但比没有强多了。具体看图&#xff1a; 时钟选着 NVIC配置 GPIO配置 2、生成的具体配置信息 NXP的配置工具里面&#xff0c;具体的波特率可以直接显示&#xff0c;这个工具没有&#xff0c;怎么办&#xff1f; 它放到了生成的代码里面…

matlab Patten的使用(重要)(Matlab处理字符串一)

原文连接&#xff1a;https://www.mathworks.com/help/releases/R2022b/matlab/ref/pattern.html?browserF1help 能使用的搜索函数&#xff1a; contains确定字符串中是否有模式matches确定模式是否与字符串匹配count计算字符串中模式的出现次数endsWith确定字符串是否以模式…

Docker创建一个mongodb实例,并用springboot连接 mongodb进行读写文件

一、通过Docker 进行运行一个 mongodb实例 1、拉取镜像 docker pull mongo:5.0.5 2、创建 mongodb容器实例 docker run -d --name mongodb2 \-e MONGO_INITDB_ROOT_USERNAMEsalaryMongo \-e MONGO_INITDB_ROOT_PASSWORD123456 \-p 27017:27017 \mongo:5.0.5 3、进入容器&am…

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍02-基于错误消息的SQL注入(Error-Based SQL Injection)

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

OpenCVE:一款自动收集NVD、MITRE等多源知名漏洞库的开源工具,累计收录CVE 27万+

漏洞库在企业中扮演着至关重要的角色&#xff0c;不仅提升了企业的安全防护能力&#xff0c;还支持了安全决策、合规性要求的满足以及智能化管理的发展。前期博文《业界十大知名权威安全漏洞库介绍》介绍了主流漏洞库&#xff0c;今天给大家介绍一款集成了多款漏洞库的开源漏洞…

Spring Boot 3.X:Unable to connect to Redis错误记录

一.背景 最近在搭建一个新项目&#xff0c;本着有新用新的原则&#xff0c;项目选择到了jdk17SpringBoot3.4。但是在测试Redis连接的时候却遇到了以下问题&#xff1a; redis连不上了。于是我先去检查了配置文件的连接信息&#xff0c;发现没问题&#xff1b;再去检查配置类&am…

MinT: 第一个能够生成顺序事件并控制其时间戳的文本转视频模型。

MinT 是第一个能够生成顺序事件并控制其时间戳的文本转视频模型。使用 MinT 生成时间控制的多事件视频。给定一系列事件文本提示及其所需的开始和结束时间戳&#xff0c;MinT 可以合成具有一致主题和背景的平滑连接事件。此外&#xff0c;它可以灵活地控制每个事件的时间跨度。…

C语言实验 结构体2

时间:2024.12.18 6-5 评委打分-t-CalcuScore 代码 // 定义结构体 struct Score {int id;char name[10];int value[17];double finalScore;int rank; };// 计算最终成绩 void CalcuScore(struct Score grade[], int n) {for (int i = 0; i < n; i++) {int max = grade[i].…

第6章 第一组重构

最常用到的重构就是用提炼函数&#xff08;106&#xff09;将代码提炼到函数中&#xff0c;或者用提炼变量&#xff08;119&#xff09;来提炼变量。既然重构的作用就是应对变化&#xff0c;你应该不会感到惊讶&#xff0c;我也经常使用这两个重构的反向重构——内联函数&#…

基于python对网页进行爬虫简单教程

python对网页进行爬虫 基于BeautifulSoup的爬虫—源码 """ 基于BeautifulSoup的爬虫### 一、BeautifulSoup简介1. Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要…

C语言中文件是什么?文件文本和二进制文件的区别

1、C语言中文件是什么&#xff1f; 我们对文件的概念已经非常熟悉了&#xff0c;比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种&#xff0c;最主要的作用是保存数据。 在操作系统中&#xff0c;为了统一对各种硬件的操作&#xff0c;简化接口&#xff0c;不同…

vmware workstation pro上创建虚拟机

vmware workstation pro上创建虚拟机 下载vmware workstation pro软件安装后并运行点击主页&#xff0c;选择创建虚拟机 创建虚拟机成功后会出现如下界面 可以点击设置按钮删除不需要的硬件&#xff0c;也可以添加新的硬件设备&#xff0c;最终硬件信息如下图 至此虚拟机…

【数学建模】利用Matlab绘图(2)

一、Matlab中plot函数的基本用法 在matlab中&#xff0c;函数的基本用法主要包括以下几种 第一类&#xff1a; plot(X,Y,LineSpec) 第二类&#xff1a; plot(tbl,xvar,yvar) 1.1 第一类 1.1.1x-y坐标 x和y的选择取决于绘图所需的数据类型以及图像的类型。下表列出了几种…

ASP.NET Core - 依赖注入 自动批量注入

依赖注入配置变形 随着业务的增长&#xff0c;我们项目工作中的类型、服务越来越多&#xff0c;而每一个服务的依赖注入关系都需要在入口文件通过Service.Add{}方法去进行注册&#xff0c;这将是非常麻烦的&#xff0c;入口文件需要频繁改动&#xff0c;而且代码组织管理也会变…

Oracle 适配 OpenGauss 数据库差异语法汇总

背景 国产化进程中&#xff0c;需要将某项目的数据库从 Oracle 转为 OpenGauss &#xff0c;项目初期也是规划了适配不同数据库的&#xff0c;MyBatis 配置加载路径设计的是根据数据库类型加载指定文件夹的 xml 文件。 后面由于固定了数据库类型为 Oracle 后&#xff0c;只写…

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版) 文章目录 Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)一.环境准备1.服务器准备2.环境配置3.设置主机名4.修改国内镜像源地址5.配置时间同步6.配置内核转发及网桥过滤二.容器运行时Containerd安装(所有节点)…

[LeetCode-Python版]21. 合并两个有序链表(迭代+递归两种解法)

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#x…

MATLAB引用矩阵元素的几种方法

引用矩阵元素可以通过索引&#xff0c;也可以通过逻辑值 索引 通过引用元素在矩阵中的位置来提取元素&#xff0c;例如&#xff1a; - 逻辑值 通过某种逻辑运算来使得要提取的值变为逻辑 1 1 1&#xff0c;用 A ( ) A() A()提取即可&#xff0c; A A A为原矩阵的名称。 例如&…