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 相关文章推荐
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 Javascript
javascript实现加载xml文件的方法
Nov 24 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
Javascript动画效果(3)
Oct 11 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
Vue + Elementui实现多标签页共存的方法
Jun 12 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
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 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php自动加载方式集合
2016/04/04 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
js中cookie的使用详细分析
2008/05/28 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
python实现的简单FTP上传下载文件实例
2015/06/30 Python
基于python实现简单日历
2018/07/28 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
python GUI模拟实现计算器
2020/06/22 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
2015年元旦促销方案书
2014/12/09 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
技术员岗位职责范本
2015/04/11 职场文书
通知的格式范文
2015/04/27 职场文书
老公出轨后的保证书
2015/05/08 职场文书