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 相关文章推荐
HTTP状态代码以及定义(解释)
Feb 02 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
javascript常用的方法整理
Aug 20 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
js操作数据库实现注册和登陆的简单实例
May 26 Javascript
javascript简单实现等比例缩小图片的方法
Jul 27 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
JavaScript中arguments的使用方法详解
Dec 20 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开发环境配置记录
2011/01/14 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
详解python while 函数及while和for的区别
2018/09/07 Python
python实现网页自动签到功能
2019/01/21 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
七年级政治教学反思
2014/02/03 职场文书
承诺函格式模板
2015/01/21 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
MSSQL基本语法操作
2022/04/11 SQL Server
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL