【JavaScript】 splice slice

2023-11-30 18:08
文章标签 java script slice splice

本文主要是介绍【JavaScript】 splice slice,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

splice

splice有3个参数,它可以用来替换/删除/添加数组内某一个或者几个值

* 注意:该方法会改变原始数组。


arrayObject. splice (index , len , [item])

  • index:数组开始下标
  • len: 替换/删除的长度
  • item:替换的值,删除操作的话 item为空
  • 返回值:包含被删除项的新数组(如果有的话)

如:arr = [‘a’,’b’,’c’,’d’]

1. 删除 —— item不设置

arr.splice(1,1) //[‘a’,’c’,’d’]
删除起始下标为1,长度为1的一个值。(len设置的1,如果为0,则数组不变)

arr.splice(1,2) //[‘a’,’d’]
删除起始下标为1,长度为2的一个值

2. 替换 —— item为替换的值

arr.splice(1,1,'ttt') //[‘a’,’ttt’,’c’,’d’]
替换起始下标为1,长度为1的一个值为‘ttt’

arr.splice(1,2,'ttt') //[‘a’,’ttt’,’d’]
替换起始下标为1,长度为2的两个值为‘ttt’

3.添加 —— len设置为0,item为添加的值

arr.splice(1,0,'ttt') //[‘a’,’ttt’,’b’,’c’,’d’]
表示在下标为1处添加一项‘ttt’


❤JS能力测评经典题(牛客网)

【移除数组中的元素】

移除数组 arr 中的所有值与 item 相等的元素,请直接在给定的 arr 数组上进行操作

输入例子:
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)

输出例子:
[1, 3, 4]

function removeWithoutCopy(arr, item) {for(var i=0;i<arr.length;i++){if(arr[i]==item){  //splice方法,给其传递两个参数,第一个参数表示起始位置,第二个参数表示删除元素的个数arr.splice(i,1);//需要注意的是,splice方法会改变数组长度,当减掉一个元素后,后面的元素都会前移,因此需要相应减少i的值i--;}}return arr;
}

        题目要求在原数组上面直接修改,删除数组元素,可以用splice方法,给其传递两个参数,第一个参数表示起始位置,第二个参数表示删除元素的个数。因此,循环遍历数组arr,如果arr[i] == item,就将i作为第一个参数,1作为第二个参数(只删除一个元素)传给splice方法。需要注意的是,splice方法会改变数组的长度,因此在每次删除之后,都需要执行i- -以确保数组长度正确。


slice

定义:可从已有的数组中返回选定的元素。

*注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

arrayObject. slice( start, end)

  • start 必需:规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
  • end 可选:规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
  • 返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

❤JS能力测评经典题(牛客网)

【添加元素】

在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组

输入例子:
append([1, 2, 3, 4], 10)
输出例子:
[1, 2, 3, 4, 10]

法①
function append(arr, item) {//复制数组var arr2 = arr.slice(0);arr2.push(item);   return arr2;
}
法② 
function append(arr, item) {return arr.concat([item]);
}

        使用slice()复制数组arr赋值给arr2,用push()添加元素item,但注意push()方法修改原数组,它返回的是新的数组的长度,所以例子中return arr2.push(item);返回的是5;
        使用concat() 方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。


这篇关于【JavaScript】 splice slice的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438018

相关文章

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.