首页 > 其他分享 >浅谈splice( )与slice( )

浅谈splice( )与slice( )

时间:2023-08-02 16:00:41浏览次数:31  
标签:splice slice 下标 浅谈 截取 元素 数组

1、splice( )

概念:splice( )用于修改原始数组,它可以删除、插入、替换数组的元素,并返回被删除的元素组成的新数组。

语法:splice(start,deleteCount,item1,item2,itemN)

start:开始位置,规定添加/删除的起始位置。从 0 开始计算的索引,表示要开始改变数组的位置

deleteCount:移除的数量。要删除的项目数量。如果设置为 0,则不会删除项目。

item:替换的元素,从数组中移除一个或多个,并用新的item替换。

    let arr = [1, 3, 4, 5, 7, 8, 9, 6];
      // 从下标为2的元素开始截取,截取3个元素
      let result = arr.splice(2, 3);
      // 输出结果:[4, 5, 7]
      console.log(result);
      // 从下标为-3的元素开始截取,截取2个元素
      let result1 = arr.splice(-3, 2);
      // 输出结果为:[8, 9]
      console.log(result1);

2、slice( )

概念:slice( )用于创建原始数组的一个浅拷贝副本,它可以通过指定起始和结束位置来选取数组的一部分,并返回选取的元素组成的新数组。

语法:slice(start,end)  

start:提取起始处的索引,规定从何处开始选取,默认是从下标0开始。如果是负数,则从末尾开始。也就是说 -1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end:提取终止处的索引,规定从何处结束选取。该参数是数组片段结束处的数组下标,如果省略则一直截取到数组末尾。 

 let arr = [1, 2, 3, 5, 2, 3, 4, 4, 1, 2];
      // 从下标为1的元素开始截取,结束下标为4的元素
      let result = arr.slice(1, 4);
      // 输出结果为:[2, 3, 5]
      console.log(result);
      // 从下标为-3的元素开始截取,结束下标为-1的元素
      let result1 = arr.slice(-3, -1);
      // 输出的结果为:[4,1]
      console.log(result1);

注意:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

3、区别

相同点:都可以用于数组元素的截取

不同点:

① splice改变原数组,slice不改变原数组;

② splice还可以实现添加、删除操作;

③ splice可以传入3个参数,而slice只能传入2个参数。

 

标签:splice,slice,下标,浅谈,截取,元素,数组
From: https://www.cnblogs.com/wanker/p/17600919.html

相关文章

  • 浅谈MRO工业品加盟行业趋势
    电商经济的快速发展,线上购物和线上支付已成为人们日常购物不可或缺的生活方式。这对于MRO产品(五金工具、劳保用品、刀具器材、紧固件、焊接耗材、切屑刀具、精加工刀具等),也是一样的。越来越多的企业采购者增加线上采购渠道的投入,而能否留住用户,产品质量把控和产品价格优势是线上平......
  • 站在营销的角度浅谈直播行业
    直播开发这个行业,在成就了一批网红、暴发户的同时,也给平台和商家带来了丰厚的利益,从直播程序定位搭建方案到最后的测试上架,每一步都要条理清晰,营销是一门学问,今天就来浅谈一下直播行业的营销机制。1.平台选择:营销机制首先就是选择合适的平台。由于用户群体和特点不同,因此根据目标群......
  • 浅谈-BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(Object targe
    BeanWrapper是SpringFramework中的一个接口,它提供了一种方便的方式来访问Java对象的属性,并允许对属性进行读取和设置操作。PropertyAccessorFactory.forBeanPropertyAccess(this)是一个工厂方法,用于创建一个BeanWrapper对象,以便访问指定的Java对象的属性。举个例子来......
  • 浅谈-HttpMessageConverter接口
    HttpMessageConverter接口是SpringFramework中的一个接口,用于处理HTTP请求和响应体的消息转换。解释如下:在SpringWeb应用中,控制器(Controller)处理HTTP请求时,通常会返回响应结果给客户端。这些响应结果可以是Java对象、字符串、JSON数据、XML数据等。HttpMess......
  • 浅谈FreeMarker
    在Java中,以".ftl"后缀结尾的文件是FreeMarker模板文件。FreeMarker是一种模板引擎,用于生成文本输出,特别适用于动态生成HTML、XML、JSON等文本格式。FreeMarker使用".ftl"后缀来标识模板文件,其中包含了模板的结构和动态内容的占位符。在FreeMarker模板中,使用特定的语......
  • 浅谈新生代为什么要分三块区域并且比例为什么是8:1:1
           如题,最近在网上看到了一个某大厂的面试题:“新生代为什么分三块区域且比例为什么是8:1:1"?网上答案比比皆是,我是没搜到什么有价值的答案,今天结合这个题目谈谈自己的粗浅想法,如有不对还望指正;另外需要说明的是,接下来聊的都是基于G1之前的垃圾收集器;      ......
  • 浅谈php伪协议的运用
    浅谈php伪协议的运用(133条消息)PHPFilter伪协议Trick总结_php伪协议rot13的用法_swtre33的博客-CSDN博客php死亡exit()绕过-xiaolong'sblog(xiaolong22333.top)0x00ctf中常见的伪协议种类在CTF比赛中,常常会使用PHP伪协议来进行一些有趣的挑战。PHP伪协议是一种特殊的U......
  • 浅谈 dijkstra 与其它文章并没有谈到的一些问题
    讲一个小故逝今天做到了一道很典的题目P1875,我发现我其实并不太会,然后在我看完了题解剽题解的屑以后,我发现我对dijkstra的理解仅仅停留在它的过程,而没有深入挖掘dijkstra的正确性以及它的本质等等。所以这篇文章会从另一个角度来看看dijkstra。也许这是dijkstra的本质吧,还......
  • 浅谈SQL注入及其防御方法
    昨晚跟学生们在群里讨论到什么是SQL注入的时候,硬挤出来了一个比喻.码字不易,特整理记录如下.  首先,电脑里面的语言分两种,编译型,解析型(脚本型).比如PHP就是解析型,C就是编译型.由于SQL语句可以在这两类语言下执行,所以为了充分明白是什么导致了SQL注入漏洞,我......
  • 浅谈数据库分库分表
    目录1.分库分表是什么2.为什么进行分库分表3.有哪些解决方案4.总结本文主要介绍数据库分库分表相关的基础知识,包括分库分表是什么,为什么要分库分表,以及有哪些解决方案。1.分库分表是什么数据库分库分表,用英文表示是"databasesharding"or"databasepartitioning"。分库分表......