splice和slice的区别
splice和slice的区别为:
1.splice改变原数组,slice不改变原数组。
2.splice除了可以删除之外,还可以插入。
3.splice可传入3个参数,slice接受2个参数。
1、splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:splice() 方法会改变原来的数组结构。
语法
arrayObject.splice(index,deleteCount,item1,.....,itemX)
splice() 方法通过删除或者替换现有元素或者原地添加新的元素来修改数组,并且以数组形式返回被修改的内容。
有三个参数:
index:开始位置(必须要有)。整数,规定添加/删除项目的位置。
如果超出数组的长度,则从数组末尾开始添加
如果是负值,从数组末尾开始第几位
如果负数也大于数组的长度,则开始位置为0
deleteCount:移除的数量(必须要有)。要删除的项目数量。如果设置为 0,则不会删除项目。
如果大于数组的长度,也会提取到数组末尾。
item:替换的元素。item1, ..., itemX可选。表示向数组添加的新项目。从数组中移除一个或多个,
并用新的item替换。
我们在使用的时候可根据自己的情况传递一个参数,或两个参数,或者三个参数。
返回值
类型
描述
Array包含被删除项目的新数组,如果有的话。
总结splice()这个方法就是可以删除数组中的项,也可以向数组中添加新的项
const arr = [1, 2, 3, 4, 5]
const sub = arr.splice(2, 3)
// 原始数组已修改
arr // [1, 2]
sub // [3, 4, 5]
例子 1
在本例中,我们将创建一个新数组,并向其添加一个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); // 其中0代表添加
输出结果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
例子 2
在本例中我们将删除位于 index 3 的元素,并添加一个新元素来替代被删除的元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(3,1,"Lemon","Kiwi"); // 其中1代表删除
输出结果:
Banana,Orange,Lemon,Kiwi,Mango
例子 3
从第三个位置开始删除数组后的两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
输出结果:
Banana,Orange
2、slice
slice() 方法可从已有的数组中返回选定的元素。
语法
arrayObject . slice ( start , end )
slice返回由start和end决定的一个浅拷贝的新数组,原数组不会改变。注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
有两个参数:
start:起始索引(必须要有)。规定从何处开始选取。如果是负数,则从末尾开始。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。如果省略start,则默认是数组的0下标开始
end:结束索引(可选)。规定从何处结束选取。该参数是数组片段结束处的数组下标。
如果end被省略,slice会一直到末尾。
如果end大于数组的长度,也会提取到数组末尾。
如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
const arr = [1, 2, 3, 4, 5]
const sub = arr.slice(2, 3)
// 原始数组未被修改
arr // [1, 2, 3, 4, 5]
sub // [3]
例子1:
从数组中读取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; 【位置为:0,1,2,3,4】
var citrus = fruits.slice(1,3); 【从1开始显示,显示到3的前一个】
输出:
Orange,Lemon
例子 2:
使用负值从数组中读取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
输出:
Lemon,Apple
splice和slice的区别相关推荐
- splice,splite,slice的区别
方法 针对对象 是否改变原数组或字符串 语法 注 splice 数组 改变原数组 let newArr=arr.splice(start,howmany,itemx); start:从哪个下标位置开始 ...
- js数组中splice和slice的区别
相同点: slice()和splice()都可以用来根据数组的下标截取数组,它们都是数组中的方法. 不同点: 1.slice() slice()方法会返回一个新的数组对象,slice(begin,en ...
- split、splice和slice的区别
split主要用于字符串的分割,可以根据某个字符把字符串拆分成多个数组: let splitString = 'abcdefgh' let splitArray = splitString.split ...
- 【js splice和slice】
1.splice和slice的区别: slice的操作不影响原数组.会返回所选择的元素.(从哪到哪开始删) splice往数组中指定位置添加或删除元素,会影响原数组.返回被删除的元素,(从什么位置开始 ...
- JS中splice、slice用法及区别
splice 向数组中添加或删除元素,然后返回含有被删除元素的数组 注意:这种方法会改变原始数组 语法 array.splice(index,howmany,item1,-,itemX) 参数 ind ...
- 关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】
在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果.所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方法,find(). ...
- 关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】...
在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果.所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方法,find(). ...
- JS之splice和slice函数
今天看了一下JS的Splice和slice,之前总是搞的比较混 Splice 要注意splice方法时可以修改原数组的!!! Splice方法可以替换,修改,删除数组中的元素,这个方法我理解为接收3个 ...
- js数组截取方式splice()和slice()方法
js数组截取方式splice()和slice()方法 1.splice() splice() 方法可以添加元素.删除元素,也可以截取数组片段.删除元素时,将返回被删除的数组片段,因此可以使用 spli ...
最新文章
- Jsprime——一款JavaScript静态安全分析工具
- 设计带有SD卡的 MM32F3277 MicroPython 实验板
- C语言文本操作以及C语言小技巧
- 消控中心人员配置_关于2018年度环创中心楼宇物业综合管理考评情况的通报
- 什么是管理型工业以太网交换机?
- (王道408考研操作系统)第一章计算机系统概述-第一节1:操作系统基本概念以及目标和功能
- 骆昊python100天百度云_骆政园-西安交通大学能源与动力学院
- L2-028 秀恩爱分得快-PAT团体程序设计天梯赛GPLT
- .net mysql参数化查询,ASP.NET中的mysql参数化查询
- 浏览器存储cookie
- 零基础的学习者应该怎么开始学习呢?Python核心知识学习思维分享
- cygwin安装指南
- 驭见新知 | 给无人车戴上VR眼镜是种什么体验?
- php判断运营商,php识别手机号码运营商简单示例
- Derivation of Linear Regression with One Variable
- STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
- ultron,奥创,ultron官网,奥创官网,奥创中国区官网,ultron中国区官网,奥创公链,ultron公链,ulx,ultron奥创,海洋renhe333333
- 二阶常系数微分方程的通解
- RabbitMQ入门其一:环境搭建和Hello World
- 数论--欧几里得和扩展的欧几里得定理
热门文章
- QMap 和 QHash容器
- java map 克隆_HashMap对象的深层克隆
- 区块链软件公司:加密货币再演疯狂
- 登录用友时显示不能建立跟服务器的连接,用友GRPR9乡财县管管理软件登录时提示“无法与中间层服务器建立连接,请重新设置中间层”的解决办法知识课件(11页)-原创力文档...
- 没联网 电脑对时 校时 XJ-T100
- 【算法导论】多项式求和
- Java (1.7) could not be located. OPatch cannot proceed! OPatch returns with error code = 1
- 联想Thinkpad 没有外放声音,插耳机才有声音的解决办法
- Media Queries使用方法
- 《软件框架设计的艺术》试读:1.2 软件的演变过程