Array.slice和spilce的区别,看了忘,忘了又看,烦!

Array.prototype.slice()

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变

1:简单的复制
slice执行的一个浅拷贝,没什么卵用,浅拷贝现在基本都用扩展运算符做,只是想说明slice的两个参数非必填

const arr2 = arr.slice()

2:获取从 N 开始的子数组

 const nameArr = ['钟离', '刻晴', '甘雨', '行秋', '重云']
 const newArr = nameArr.slice(2,4)
 // ["甘雨", "行秋"]

3:获取从末尾 N 开始的子数组
参数可以是负数,表示到末尾数第几位
非常经典的就是这个,判断数据类型

// [object Undefined]
function checkType(value) {
    // slice(start,end)  自start到end(end不包括)
    // 序号从0开始,表示从第9位开始到倒数一位,也就是最后一位之前的截取
    return Object.prototype.toString.call(value).slice(8, -1)
}

Array.prototype.splice()

splice() 方法通过删除替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
3个参数
1:start​
起始下标,从0开始,可以是负数,如果大于Arr.length则从末尾添加

2:deleteCount ​
要删除的元素个数,可选, 0 或者负数,则不移除元素,数值过大则后面的全部移除

3:[…item1, item2] ​
要增加的元素,可选

1:删除

const nameArr = ['钟离', '刻晴', '甘雨', '行秋', '重云']
const newArr = nameArr.splice(1, 1)
console.log(nameArr) // ["钟离", "甘雨", "行秋", "重云"]
console.log(newArr) // ["刻晴"]

2:替换

const nameArr = ['钟离', '刻晴', '甘雨', '行秋', '重云']
const newArr = nameArr.splice(1, 1, '神里绫华')
console.log(nameArr) // ["钟离", "神里绫华", "甘雨", "行秋", "重云"]
console.log(newArr) // ["刻晴"]

3:原地添加

const nameArr = ['钟离', '刻晴', '甘雨', '行秋', '重云']
// 1 表示在 下标1这个位置进行添加,而不是在下标1之后添加
const newArr = nameArr.splice(1, 0, '神里绫华', '凝光', '宵宫')
console.log(nameArr) // ["钟离", "神里绫华", "凝光", "宵宫", "刻晴", "甘雨", "行秋", "重云"]
console.log(newArr) // []

splice的功能多的很,扩展功能遇到再说吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值