首页 > 其他分享 >ES6数组中删除指定元素

ES6数组中删除指定元素

时间:2024-04-05 22:11:22浏览次数:25  
标签:ES6 arr splice 删除 item 数组 ._ data

ES6数组中删除指定元素

 

知识点:

ES6从数组中删除指定元素

findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
 arr.splice(arr.findIndex(item => item.id === data.id), 1)

 http://louiszhai.github.io/2017/04/28/array/

1:js中的splice方法

splice(index,len,[item]) 注释:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空

如:arr = ['a','b','c','d']

删除 ---- item不设置

arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arr.splice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2

替换 ---- item为替换的值

arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1

arr.splice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1

 

添加 ---- len设置为0,item为添加的值

arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt’

 

 

 

想要的:定义一个数组ARR,保存已勾选上的数据ID,改变勾选框的状态时从数组中删除或添加数据ID,点击批量删除时,获取数组ARR

操作:

1.页面设置

复制代码
// 全选
         <th nz-th nzCheckbox>
            <label nz-checkbox [(ngModel)]="_allChecked" [nzIndeterminate]="_indeterminate" (ngModelChange)="_checkAll($event)">
            </label>
          </th>


//单选

<td nz-td nzCheckbox>
     <label nz-checkbox [(ngModel)]="data.checked" (ngModelChange)="_refreshStatus($event)" (click)="onSelect(data)">
     </label>
 </td>
复制代码

 

2.全选操作触发事件

复制代码
// 初始化全选和全部取消的状态
_allChecked = false; _indeterminate = false;
   _bacthDelete = [];//定义一个数组,存放勾选的数据ID

// 点击全选触发的事件 _checkAll(value) { if (value) { this._displayData.forEach(data => { data.checked = true; this._bacthDelete.push(data.id); }, console.log(this._bacthDelete) ); } else { this._displayData.forEach(data => { data.checked = false; }, this._bacthDelete=[] ); console.log(this._bacthDelete) } this._refreshStatus(); }
复制代码

 3.点击单个数据状态

复制代码
  onSelect(data: FormData): void {
    this.selectedTestId = data;
    console.log(data);
    if(!data.checked){
      let arr = this._bacthDelete;
      arr.splice(arr.findIndex(item => item.id === data.id), 1)
      console.log(arr)
    }else{
      this._bacthDelete.push(data.id);
       console.log( this._bacthDelete)
    }

  }
复制代码

 

标签:ES6,arr,splice,删除,item,数组,._,data
From: https://www.cnblogs.com/mouseleo/p/18116286

相关文章

  • c语言之指针数组
    在c语言中,一个数组元素是由指针组成的,就叫指针数组。指针数组的定义方法类型名*数组名[数组长度]如果要处理多个字符串,用指针数组会方便多。举个例子,代码如下#include<stdio.h>intmain(){ inti; char*s[]={"cprogram","control","logic"}; for(i=0;i<3;i++) ......
  • 【C语言学习】之字符数组与字符串处理函数
    1.字符数组1.字符数组的初始化1.单字符形式chara[3]={'a','b','c'}                定义一个字符型一维数组,数组名a,三个下表变量a,b,ccharb[][3]={'a','b','c','d','e','f','g'}  ......
  • 【C语言学习】之一维数组
    1.相同类型的变量可以构成数组,数组一次可以定义多个相同类型的变量既然是变量,肯定有定义和引用:1.一维数组的定义1.定义格式:数据类型数组名[整型常量]例如:inta[4],                    //定义了一个数组a包含4个整形变量括号里......
  • C++:数组元素逆置
    问题描述:请声明一个含有5个元素的数组,并且将元素逆置。如数组中的元素为1,3,2,5,4,逆置后为4,5,2,3,1。解题思路:1.创建一个含有5个元素的数组,并将其初始化2.实现逆置    2.1记录首元素下标start    2.2记录尾元素下标end    2.3交换首尾元素    ......
  • 【C语言系列】-- 数组结构
    数组结构前面介绍的数据类型都是基本数据类型,例如整型、字符型、浮点型等数据,这些都是简单的数据类型。对于有些数据,只有简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。例如:假设需要接收并存储100个学员的成绩,此时无法使用for循环依次读取每个学员的成绩,因......
  • 001_Numpy数组
    1.手动构造数组importnumpyasnpimportseabornassnsimportmatplotlib.pyplotaspltimportmathfrommatplotlibimportcmdefvisualize_2D(array,vmax,vmin):fig_width=math.ceil(array.shape[1]*0.5)fig_length=math.ceil(array.shape[0]......
  • 删除字符串中间的*
    描述输入一个字符串,将串前和串后的保留,而将中间的删除。输入描述一个含*的字符串。输出描述删除了串中的*的字符串。用例输入1 ***ABC123**123*abc***********用例输出1 ***ABC123123abc***********代码#include<bits/stdc++.h>usingnamespacestd;intmain(......
  • 最大连续子数组和的单元测试
    (1)请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例(2)请利用自动测试工具对程序进行测试(3)请将程序运行结果和自动测试分析结果截图粘贴到文档中为了求数组最大字段和,须定义......
  • 代码随想录算法训练营第二天 | 数组 209.长度最小的子数组
    leetcode209.长度最小的子数组题目209.长度最小的子数组给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。......
  • 在 ES6 中,for...of 和 for...in 讲解
    在ES6中,for...of 和 for...in 是两种用于遍历不同数据结构的循环结构。它们各自有不同的用途和适用场景。for...offor...of 循环用于遍历可迭代对象(包括Array、Map、Set、String、TypedArray、函数的arguments对象等等)的值。语法for(variableofiterable){/......