news 2026/8/21 23:44:48

this.selectedTestType.findIndex(x => x.name === item.name);findIndex 的作用详细介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
this.selectedTestType.findIndex(x => x.name === item.name);findIndex 的作用详细介绍

// 选中 / 取消toggleTestType(item:TestTypeItem){item.checked=!item.checked;constindex=this.selectedTestType.findIndex(x=>x.name===item.name);if(item.checked&&index===-1){this.selectedTestType.push(item);}elseif(!item.checked&&index>-1){this.selectedTestType.splice(index,1);}}

1. findIndex 的作用

  • const index = this.selectedTestType.findIndex(x => x.name === item.name);

  • findIndex 会遍历数组,找出 第一个满足条件的元素的索引。

  • 返回值:

    • 如果找到匹配元素 → 返回该元素在数组中的索引(从 0 开始)。

    • 如果没有找到 → 返回 -1。

举个例子:

constarr=['a','b','c'];arr.findIndex(x=>x==='b');// 返回 1arr.findIndex(x=>x==='d');// 返回 -1

所以 -1 就是 数组中不存在这个元素的标记。

2. 为什么写 index === -1 和 index > -1

if(item.checked&&index===-1){this.selectedTestType.push(item);}elseif(!item.checked&&index>-1){this.selectedTestType.splice(index,1);}
  • item.checked && index === -1:

    • 条件解释:当前项被选中,但还没有在已选数组里

    • 动作:把它加入 selectedTestType。

  • !item.checked && index > -1:

    • 条件解释:当前项被取消选中,并且在已选数组里存在

    • 动作:从 selectedTestType 中移除它。

  • 关键点:

    • -1 表示“未找到”,所以要用它判断是否存在。

    • index > -1 表示“找到了”,可以安全地删除。

详细解释:array.splice(start, deleteCount, …items)

  • start → 从数组的哪个索引位置开始操作

  • deleteCount → 要删除多少个元素

  • …items → 可选,要插入的新元素

this.selectedTestType.splice(index,1);

index → 找到的要删除的元素在数组中的位置

1 → 只删除一个元素

没有提供其他元素 → 所以只是删除,不添加新元素

这一行就是 从 selectedTestType 数组中移除被取消选中的测试类型。

3. 总结

  • index 的确是从 0 开始计数的,但 findIndex 没有找到时才返回 -1。

  • 所以这里的判断逻辑是为了:

  • 防止重复添加(避免数组中出现重复元素)

  • 只删除存在的元素,避免报错

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 22:30:03

Flutter 状态管理深度解析:Provider 与 Riverpod 核心原理及实战对比

目录 引言:状态管理为何是 Flutter 开发的核心痛点Provider:基于 InheritedWidget 的经典状态管理方案2.1 Provider 核心原理2.2 Provider 实战:基础 Todo 列表实现Riverpod:Provider 的 “升级版” 核心改进3.1 Riverpod 核心优…

作者头像 李华
网站建设 2026/8/21 5:38:25

30、电气网络综合:近期研究综述

电气网络综合:近期研究综述 1. 电气网络基础概念 1.1 驱动点行为 在一个或多个端口,端口对应着施加电压且有电流流过的一对端子。用 $\boldsymbol{i}$ 和 $\boldsymbol{v}$ 分别表示端口电流向量和相应的电压向量,那么网络的驱动点行为是形如以下微分方程的解集: $$ P…

作者头像 李华
网站建设 2026/8/21 19:50:01

38、多智能体系统二分共识与超奈奎斯特频率跟踪问题解析

多智能体系统二分共识与超奈奎斯特频率跟踪问题解析 多智能体系统二分共识问题 系统描述与基本定义 多智能体系统由 $N$ 个智能体组成,每个智能体的状态 $x_i(t)$($i \in [1, N]$)遵循一阶微分方程: $\dot{x} i(t) = Ax_i(t) + Bu_i(t)$ 其中,$x_i(t) \in R^n$,$u_…

作者头像 李华
网站建设 2026/8/21 4:39:51

1、掌握 Linux Shell 脚本编写基础

掌握 Linux Shell 脚本编写基础 1. 引言 在 Linux 系统中,脚本编写是一项强大的技能,它可以帮助我们自动化各种任务,提高工作效率。本文将深入探讨 Linux 脚本编写的基础知识,包括不同类型的 Linux 外壳、bash 脚本的概念、命令层次结构、文本编辑器的配置、脚本的创建与…

作者头像 李华
网站建设 2026/8/21 1:21:24

14、正则表达式与AWK日志处理全解析

正则表达式与AWK日志处理全解析 1. 定义基本正则表达式(BRE)模式 正则表达式(Regex)是用于匹配和处理文本的强大工具。在定义BRE模式时,我们可以使用以下命令: $ echo "Welcome to shell scripting" | sed -n /shell/p $ echo "Welcome to shell scri…

作者头像 李华
网站建设 2026/8/21 22:27:16

23、工业网络物理系统对交通和建筑行业的影响

工业网络物理系统对交通和建筑行业的影响 1. SUPERFLO系统在交通领域的应用 SUPERFLO 能够在出现扰动后调整维护和运营决策。这里的扰动指未预料到的事件,或者预料到的事件中出现的干扰。在列车车队中,这些干扰可能是替换零件交付的意外延迟、维修时间的错误估计以及意外故…

作者头像 李华