slice与splice的区别

slicesplice
不改变原数组改变原数组
返回一个子数组返回被替换或删除掉的元素数组
arr.slice(2, 3) 从索引为2的元素开始截取到索引为3的元素(包含2,不包含3)arr.splice(2, 3) 从索引为2的元素开始 删除 3个元素(包含2)

slice: 从当前数组中截取一个新的数组

  • 不影响原来的数组,返回子数组

    var arr = ['a', 'b', 'c', 'd', 'e', 'f']
    var arr1 = arr.slice(0, 3)	// 不包含下标为3的元素
    var arr2 = arr.slice(3, 6)
    console.log(arr); // (6) ["a", "b", "c", "d", "e", "f"]
    console.log(arr1);  // (3) ["a", "b", "c"]
    console.log(arr2);  // (3) ["d", "e", "f"]
    
  • 参数start: 必选,end: 可选

    • end没有指定时

      • 负数: 从数组尾部算起, -1指最后一个元素

        var arr = ['a', 'b', 'c', 'd', 'e', 'f']
        var arr1 = arr.slice(-1)
        var arr2 = arr.slice(-3)
        console.log(arr1);  // ["f"]
        console.log(arr2);  // ["d", "e", "f"]
        
      • 正数: 选择序列号从index到最后的所有元素组成的新数组

        var arr = ['a', 'b', 'c', 'd', 'e', 'f']
        var arr1 = arr.slice(0)
        var arr2 = arr.slice(1)
        console.log(arr1);  // ["a", "b", "c", "d", "e", "f"]
        console.log(arr2);  // ["b", "c", "d", "e", "f"]
        

splice: 删除或替换当前数组的某些元素

  • 返回新的数组[被替换掉的元素]
  • 改变原数组

删除或替换当前数组的某些项目

添加

let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 0, 'add')
console.log(arr)  // ["a", "b", "add", "c", "d", "e", "f"]
console.log(res)  // []

替换

let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 1, 'add')
console.log(arr)  // ["a", "b", "add", "d", "e", "f"]
console.log(res)  // ["c"]
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3, 'add')
console.log(arr)  // ["a", "b", "add", "f"]
console.log(res)  // ["c", "d", "e"]
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3, 'add1', 'add2')
console.log(arr)  // ["a", "b", "add1", "add2", "f"]
console.log(res)  // ["c", "d", "e"]

删除

let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3)
console.log(arr)  // ["a", "b", "f"]
console.log(res)  // ["c", "d", "e"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值