JavaScript中splice方法的使用「建议收藏」

JavaScript中splice方法的使用「建议收藏」JavaScript中splice方法的使用splice的基本用法删除操作插入操作替换操作splice一次性删除多个元素splice的基本用法在JavaScript中,arrObject.splice()方法是处理数组的利器,利用它可以实现在指定位置删除、替换、插入指定数量的元素。其语法为:arrayObject.splice(index,howmany,item1,…,itemX)含义为从index开始,删除howmanry个元素,并在原地插入item1,…,itemN,最后返回被删除的数组

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

splice的基本用法

在JavaScript中,arrObject.splice()方法是处理数组的利器,利用它可以实现在指定位置删除、替换、插入指定数量的元素。
其语法为: arrayObject.splice(index,howmany,item1,…,itemX)
含义为从index开始,删除howmanry个元素,并在原地插入item1, …, itemN,最后返回被删除的数组。

删除操作

let myArray=["html","css","javascript","jQuery"];
let myDel=myArray.splice(1,1);   //从索引1开始删除1个元素
console.log(myArray)      //['html','javascript','jQuery'];
console.log(myDel);   //['css']

插入操作

执行插入操作时,第二个参数howmanyt传入0即可。

let myArray=["html","css","javascript","jQuery"];
let myDel=myArray.splice(1,0,'html5','css3');   //从索引1开始,删除0个元素,然后插入'html5'和css3
console.log(myArray)      //['html','css','html5','css3','javascript','jQuery'];

替换操作

执行替换操作时,第二个参数howmary传入几,后面就添加几个元素,则为替换操作。

let myArray=["html","css","javascript","jQuery"];
let myDel=myArray.splice(0,2,'html5','css3');   //从索引1开始,删除2个元素,然后插入'html5'和css3
console.log(myArray)      //['html5','css3','javascript','jQuery'];

splice一次性删除多个元素

通过判断数组中的所有元素,删除满足特定条件的元素。大部人想到的是使用循环语句,再配合splice方法。但此操作存在一个问题,在循环数组体内使用array.splice()方法删除一个元素后,会导致循环数组的下标发生改变,从而该方法无效。

//案例:删除数组中值为1的无素
let myArray=[1,2,3,1,1,1,4,5,6];
for(let i=0;i<myArray.length;i++){
	if(myArray[i]==1){
		myArray.splice(i,1);
	}				
}
console.log(myArray)    //2,3,1,4,5,6,此答案错误

解决方法1:将数组改为倒着循环

let myArray=[1,2,3,1,1,1,4,5,6];
for(let i=myArray.length-1;i>=0;i--){
	if(myArray[i]==1){
		myArray.splice(i,1);
	}				
}
console.log(myArray)    //2,3,4,5,6

解决方法2:使用Array的filter()方法

let myArray=[1,2,3,1,1,1,4,5,6];
myArray=myArray.filter(item => item!=1);
console.log(myArray)    //2,3,4,5,6	
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java.lang.ClassNotFoundException: okio.ForwardingTimeout 已解决

    java.lang.ClassNotFoundException: okio.ForwardingTimeout 已解决这个问题发现是由于版本问题引起的,下面是我用的两个jar源码对比:先看看okio-1.13.0.jar的,会发现在forwardingSource下面有ForwardingTimeout这个类下面是okio-2.0.0.jar包,会发现那个ForwardingTimeout没了,不知道官方改成什么了我用okhttp-3.8.0.jar引用okio-2.0.0.jar的时候就会…

    2022年5月29日
    108
  • 实战模拟│使用多进程教你下载 m3u8 加密或非加密视频「建议收藏」

    实战模拟│使用多进程教你下载 m3u8 加密或非加密视频「建议收藏」下载m3u8加密或非加密视频,让你视频自由

    2022年7月18日
    36
  • django的drf框架的优点_道德经的理解与感悟

    django的drf框架的优点_道德经的理解与感悟Django是基于Python编程语言开发的一套重量级的用于web开发的框架所谓web开发框架,就是基于网络通信原理,为了便于开发,对代码流进行了统一的封装和集成Django是对Python的封装,而DRF又在Django的基础上做了进一步的封装相较于Django,DRF更加适用于前后端分离的开发模式Django自带template模板,最终会生成一个html页面。而DRF通过序列化器和丰富的视图类,向服务器提交json格式的数据。…

    2025年8月2日
    3
  • 视频监控传输设备_网络视频监控平台

    视频监控传输设备_网络视频监控平台高清视频传输系统传输系统是整个社会治安视频监控网络的数据传送平台,承担着平安城市从接入点中心以之间的视频数据传输重担,是搭建整个监控网络的血脉,因此,治安视频监控网络传输系统将采用全数字化的计算机网络传输系统,从监控点的接入到监控中心的数据汇聚完全采用全数字化通道,整个传输网络结构主干万兆汇聚,千兆到监控点接入,户外接入层交换机选用宽温宽压工业级交换机产品,保证视频数据的无阻塞、无延迟传输以及与原…

    2022年10月4日
    5
  • Hash散列[通俗易懂]

    Hash散列[通俗易懂]为了速度而散列HashMap速度总所周知是非常快的,但是为什么会这么快,是因为它的散列技术,下面简单理解一下散列知识散列的价值在于速度,使得查询得以快速。一般容器查询的速度的瓶颈位于键的查询,采取的做法一般是对键进行排序,但散热则不是散列的特点散列的做法,通常把键保存到某个地方,存储一组元素最快的数据结构就是数组,所以用它来保存键的信息(不是键本身),但是由于…

    2022年5月14日
    54
  • Python集成开发环境(Eclipse+Pydev)「建议收藏」

    Python集成开发环境(Eclipse+Pydev)

    2022年1月24日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号