splice()和slice()区别

很多新手对于splice()和slice()两个方法容易混淆,其实这两个方法单看名字很像,当用法其实差别很大,且最重要的区别是splice()会改变原数组,返回的是改变的内容;slice()不会改变原数组,会返回一个新的数组。下面是他们的详细区别

一、splice()

定义:从数组中添加或删除元素,然后返回被删除的数组元素

语法:arrayObject.splice(index,n,item1,.....,itemN)

1、index表示从什么位置开始添加或删除数组元素

2、n表示删除的元素数量,如果为0,则表示不删除数组元素

3、item1,.....,itemN表示新增的数组元素

4、splice()方法会改变原始shi例

示例

//删除第一项
let arr = [1,3,5,6]
let delArr = arr.splice(0,1)
console.log(arr) // [3,5,6]
console.log(delArr) //[1]

//从位置1开始插入2项
let names = ['xiaoming','xiaohong','fangfang']
let newNames = names.splice(1,0,'wukong','bajie')
console.log(names)    // ['xiaoming', 'wukong', 'bajie', 'xiaohong', 'fangfang']
console.log(newNames) // [] 参数为0,没有删除元素所以返回的是空数组

//删除最后一个元素
let arr = [1,2,3,4,5]
let newArr = arr.splice(-1,1)
console.log(arr) // [1,2,3,4]
console.log(newArr) // [5]

//删除最后一个元素,同时在最后一个元素前面添加一个元素
let arr = [2,4,6,8]
arr.splice(-1,1,100)
console.log(arr) // [2, 4, 6, 100]

二、slice()

定义:从已有的数组中返回你选择的某段数组元素

语法:arrayObject.slice(start,end)

1、start表示从何处开始选取,start可以为负数,此时它规定从数组尾部开始算起的位置。也就是-1 ,指最后一个元素,-2 指倒数第二个元素,以此类推

2、end表示从何处结束选取,end如果没有被指定参数,数组会包含从 start 到最后一个数组元素的所有元素

3、slice()不会改变原数组,而是返回所选取范围的数组元素

示例

let arr = ['a','b','c','d']
let newArr = arr.slice(0,2)
console.log(arr) // ['a','b','c','d']
console.log(newArr) // ['a', 'b']

let a = [1,2,3,4]
let b = a.slice(-1)
console.log(a) //[1,2,3,4]
console.log(b) //[4] 没有end,取的就是最后一个


  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空千古

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值