JavaScrip数组删除特定元素的几种方法总结


Posted in Javascript onSeptember 06, 2017

前言

可能一说到删除数组特定元素你估计不止一种方法可以实现,那么下面且来看看我总结的这几种方法,可能会对你有所帮助!话不多说了,来一起看看详细的介绍吧。

源数组

var arr = ["George", "John", "Thomas", "James", "Adrew", "Martin"];

伪删除

什么是伪删除呢? 就是说将数组元素值设置为null;

arr[ arr.indexOf( 'Thomas' ) ] = null;

删除后的数组是这个样子的:

["George", "John", null, "James", "Adrew", "Martin"]

不过要注意, 这意味着数组Array也就是变量arr的长度保持不变

完全删除

是什么是完全删除呢? 这个问题你可能从字面上也能想得到就是真正的删除数组Array的元素值, 并且会改变数组的长度, 可以通过内置数组对象Array的splice方法来实现这个需求!说到splice这个方法就要说一说它的具体参数了:

Array.prototype.splice = function(start,deleteCount,items) {};

上面是内置对象Array的splice方法原型定义, 中文意思呢是:剪接, 其参数的意义是:

  • start: 起点索引值
  • deleteCount: 要删除的元素个数
  • items: 删除后替换/追加的元素
    参数不加时就表示删除元素, 并且还要结合 deleteCount 的参数值
    如果 deleteCount 为 1, items 参数位置给一个参数值, 则表示替换
    如果 deleteCount 为 1, items 参数位置给多于一个的参数值, 则表示替换及追加元素

通过splice方法删除上面 伪删除 留下的元素值 null

arr.splice( arr.indexOf( null ), 1 );

删除后的数组是这个样子的:

["George", "John", "James", "Adrew", "Martin"]

既然说到了splice方法就顺便再说一下它的其它功能, 如 替换元素, 追加元素 等操作吧!

splice函数 - 替换元素

现在数组结构是这样的:

["George", "John", "James", "Adrew", "Martin"]

想要将数组元素 James 替换为 Tom

arr.splice( arr.indexOf( 'James' ), 1, 'Tom' );

替换后的数组结构是这个样子的:

["George", "John", "Tom", "Adrew", "Martin"]

splice函数 - 替换并追加元素

现在当前数组结构是这样的:

["George", "John", "Tom", "Adrew", "Martin"]

想要将数组元素 Tom 替换为 Judy 并追加 Linda 和 Alisa

arr.splice( arr.indexOf( 'Tom' ), 1, 'Judy', 'Linda', 'Alisa' );

替换及追加后的数组结构是这个样子的:

["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]

splice函数 - 追加元素

追加元素你可以选择任意位置这取决于你的具体需求, 关键是在于 start 的取值索引位置而已!当前数组结构如下所示:

["George", "John", "Judy", "Linda", "Alisa", "Adrew", "Martin"]

比如说要在 Linda 和 Alisa 之间追加 Bill 和 Blake

arr.splice( arr.indexOf( 'Linda' ) + 1, 0, 'Bill', 'Blake' );

追加后的数组结构是下面这个样子的:

["George", "John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]
  • 起点位置 arr.indexOf( 'Linda' ) + 1 就是在数组元素 Linda 之后了
  • 删除元素个数参数这里设置的是 0 这个是追加元素的关键, 也就是说不删除元素
  • 'Bill', 'Blake' 这个呢就是内置对象Array的splice方法的最后一个参数 items 它表示0个是和多个, 根据 deleteCount 参数值不同表示的含义也会不同, 这里 deleteCount 参数是 0 并且 items 又有两个值来表示这个参数, 所示说就是追加元素值 'Bill', 'Blake'

以上说的是删除数组中特定的元素, 那删除第一个元素和最后一个元素那实现在是太简单了, 这里简单提一下就是了

删除数组中第一个元素

arr.shift();

删除后的数组是这个样子的:

["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew", "Martin"]

删除数组中最后一个元素

arr.pop();

删除后的数组是这个样子的:

["John", "Judy", "Linda", "Bill", "Blake", "Alisa", "Adrew"]

总结

以上就是JavaScrip数组删除特定元素个人所总结的一些方法,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果您还要其它的一些好的方法, 或有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JS动画效果代码3
Apr 03 Javascript
没有document.getElementByName方法
Aug 19 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
Bootstrap实现水平排列的表单
Jul 04 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
vue之数据交互实例代码
Jun 20 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
Feb 22 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 #jQuery
JavaScript学习笔记之函数记忆
Sep 06 #Javascript
node.js实现的装饰者模式示例
Sep 06 #Javascript
JavaScript使用FileReader实现图片上传预览效果
Mar 27 #Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 #Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 #Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 #Javascript
You might like
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
Python调用Redis的示例代码
2020/11/24 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
校园文化建设方案
2014/02/03 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
消防志愿者活动方案
2014/08/23 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
三八节祝酒词
2015/08/11 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python