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的区别相关推荐

  1. splice,splite,slice的区别

    方法 针对对象 是否改变原数组或字符串 语法 注 splice 数组 改变原数组 let newArr=arr.splice(start,howmany,itemx); start:从哪个下标位置开始 ...

  2. js数组中splice和slice的区别

    相同点: slice()和splice()都可以用来根据数组的下标截取数组,它们都是数组中的方法. 不同点: 1.slice() slice()方法会返回一个新的数组对象,slice(begin,en ...

  3. split、splice和slice的区别

    split主要用于字符串的分割,可以根据某个字符把字符串拆分成多个数组: let splitString = 'abcdefgh' let splitArray = splitString.split ...

  4. 【js splice和slice】

    1.splice和slice的区别: slice的操作不影响原数组.会返回所选择的元素.(从哪到哪开始删) splice往数组中指定位置添加或删除元素,会影响原数组.返回被删除的元素,(从什么位置开始 ...

  5. JS中splice、slice用法及区别

    splice 向数组中添加或删除元素,然后返回含有被删除元素的数组 注意:这种方法会改变原始数组 语法 array.splice(index,howmany,item1,-,itemX) 参数 ind ...

  6. 关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】

    在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果.所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方法,find(). ...

  7. 关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】...

    在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果.所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方法,find(). ...

  8. JS之splice和slice函数

    今天看了一下JS的Splice和slice,之前总是搞的比较混 Splice 要注意splice方法时可以修改原数组的!!! Splice方法可以替换,修改,删除数组中的元素,这个方法我理解为接收3个 ...

  9. js数组截取方式splice()和slice()方法

    js数组截取方式splice()和slice()方法 1.splice() splice() 方法可以添加元素.删除元素,也可以截取数组片段.删除元素时,将返回被删除的数组片段,因此可以使用 spli ...

最新文章

  1. Jsprime——一款JavaScript静态安全分析工具
  2. 设计带有SD卡的 MM32F3277 MicroPython 实验板
  3. C语言文本操作以及C语言小技巧
  4. 消控中心人员配置_关于2018年度环创中心楼宇物业综合管理考评情况的通报
  5. 什么是管理型工业以太网交换机?
  6. (王道408考研操作系统)第一章计算机系统概述-第一节1:操作系统基本概念以及目标和功能
  7. 骆昊python100天百度云_骆政园-西安交通大学能源与动力学院
  8. L2-028 秀恩爱分得快-PAT团体程序设计天梯赛GPLT
  9. .net mysql参数化查询,ASP.NET中的mysql参数化查询
  10. 浏览器存储cookie
  11. 零基础的学习者应该怎么开始学习呢?Python核心知识学习思维分享
  12. cygwin安装指南
  13. 驭见新知 | 给无人车戴上VR眼镜是种什么体验?
  14. php判断运营商,php识别手机号码运营商简单示例
  15. Derivation of Linear Regression with One Variable
  16. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
  17. ultron,奥创,ultron官网,奥创官网,奥创中国区官网,ultron中国区官网,奥创公链,ultron公链,ulx,ultron奥创,海洋renhe333333
  18. 二阶常系数微分方程的通解
  19. RabbitMQ入门其一:环境搭建和Hello World
  20. 数论--欧几里得和扩展的欧几里得定理

热门文章

  1. QMap 和 QHash容器
  2. java map 克隆_HashMap对象的深层克隆
  3. 区块链软件公司:加密货币再演疯狂
  4. 登录用友时显示不能建立跟服务器的连接,用友GRPR9乡财县管管理软件登录时提示“无法与中间层服务器建立连接,请重新设置中间层”的解决办法知识课件(11页)-原创力文档...
  5. 没联网 电脑对时 校时 XJ-T100
  6. 【算法导论】多项式求和
  7. Java (1.7) could not be located. OPatch cannot proceed! OPatch returns with error code = 1
  8. 联想Thinkpad 没有外放声音,插耳机才有声音的解决办法
  9. Media Queries使用方法
  10. 《软件框架设计的艺术》试读:1.2 软件的演变过程