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 相关文章推荐
Extjs学习笔记之三 extjs form更多的表单项
Jan 07 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
在vue中获取dom元素内容的方法
Jul 10 Javascript
node使用UEditor富文本编辑器的方法实例
Jul 11 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
Sep 07 Javascript
详解 vue better-scroll滚动插件排坑
Feb 08 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
决策树的python实现方法
2014/11/18 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
ipython和python区别详解
2019/06/26 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
民事授权委托书范文
2014/08/02 职场文书
政协委员个人总结
2015/03/03 职场文书
诚信考试主题班会
2015/08/17 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
vue自定义右键菜单之全局实现
2022/04/09 Vue.js
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript