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;
// 点击全选触发的事件
_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数组中删除指定元素的更多相关文章
- jq从数组中删除指定元素(根据自定义条件) 超好用的 $.grep() 方法
转: jQuery.grep() 什么是jQuery.grep()? jQuery.grep()是一个查找满足过滤函数的数组元素的函数.原始数组不受影响,返回值为数组. 用法介绍: 写法: jQuer ...
- PHP 从数组中删除指定元素
<?php $arr1 = array(1,3, 5,7,8); $key = array_search(3, $arr1); if ($key !== false){ array_splice ...
- 学underscore在数组中查找指定元素
前言 在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 findLastIndex.indexOf 和 lastInd ...
- splice从数组中删除指定定数据
/*从数组中删除指定定数据var somearray = ["mon", "tue", "wed", "thur"]so ...
- Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素
ylbtech-Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素 1.返回顶部 1. Java 实例 - 在数组中查找指定元素 Java 实例 以下实例 ...
- 【跟着子迟品 underscore】如何优雅地写一个『在数组中寻找指定元素』的方法
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- PHP从数组中找到指定元素的位置
群里有人问,有个数组五个元素 分为1到5 现在要求 循环找出3元素的索引,怎么做性能才是最高. 我不知道哪个性能最高,但是我想提出可以用多种方式进行查找,然后进行比较选择. 我想,最简单最基础的 应 ...
- C# 移除string[] 数组中的指定元素
本文转载自 http://www.cnblogs.com/jcdd-4041/p/3279531.html 第一步:先把string[] 转换成 ArrayList 第二步:移除指定元素 第三步 ...
- [Leetcode] Remove duplicates from sorted array 从已排序的数组中删除重复元素
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
随机推荐
- 测开之路五十:monggodb安装与初步使用
mongodb下载地址:https://www.mongodb.com/download-center Robo3T下载地址:https://robomongo.org/ 安装mongodb 双击无脑 ...
- mongo 数据库存储
mongo 数据库,获取有赞的数据. from app import mongo from app.external.yz.goods_api import YzGoodsApi from openp ...
- maven导出工程pom文件中依赖的jar包
在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...
- CentOS7版本中locate: 未找到命令,详细解决方案
在学习Linux(CentOS7)文件搜索命令:locate 时,遇到错误“locate: 未找到命令”. 原因:CentOS7默认没有安装该命令 解决方案: 1.安装"locate&quo ...
- boostrap中lg,md,sm,xs分别对应的像素宽度
col-xs- 超小屏幕 手机 (<768px)col-sm- 小屏幕 平板 (≥768px)col-md- 中等屏幕 桌面显示器 (≥992px)col-lg- 大屏幕 大桌面显 ...
- 51.Lowest Common Ancestor of a Binary Tree(二叉树的最小公共祖先)
Level: Medium 题目描述: Given a binary tree, find the lowest common ancestor (LCA) of two given nodes ...
- Using-JSONNET-for-dynamic-JSON-parsing
原文 https://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing With the re ...
- wireshark抓取本地回环及其问题 转摘:http://www.cnblogs.com/luminji/p/3503464.html
一:The NPF driver isn’t running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...
- 11.Container With Most Water (Array; Two-Pointers)
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). ...
- Java时区切换时的需要注意
前言 Java中的时间操作,也许大家都很熟悉,Date.Calendar.SimpleDateFormat等.但或许我们都只是会调用常见接口方法.今天解决的bug,关于TimeZone,即时区. 经常 ...