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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值