splice() slice()切割数组的区别

753 阅读1分钟

本人文词不佳 直接上例子 也更好理解

splice()

1、不传参 返回空数组

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice()) // []
    console.log(arr) //  [1,2,3,4,5]
}

2、一个参数 从当前序列号开始截取到数组尾部 返回截取到的数组 原数组此时为空数组了

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0)) // [1,2,3,4,5]
    console.log(arr) // []
}

3、两个参数 从当前序列号开始,截取指定元素的个数 返回截取的元素数组,原数组改变为剩下的元素的数组

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0, 2)) // [1,2]
    console.log(arr) // [3,4,5]
}

4、 如果是多个参数 则第一个参数代表删除元素开始的位置,第二个参数代表删除几个元素,然后在删除的位置,将剩下的参数全部插入

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0, 3, 8, 9)) // [1,2,3]
    console.log(arr) // [8,9,4,5]
}

slice()

1、不传参 返回原数组

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice()) // [1, 2, 3, 4, 5]
    console.log(arr) // [1, 2, 3, 4, 5]
}

2、传一个参数 从当前序号开始切到数组尾部

{
    
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice(2)) // [3,4,5]
    console.log(arr) // [1, 2, 3, 4, 5]
}

3、传两个参数 第一个参数从当前序号开始切到 第二个参数,左闭右开,第二个参数的序列号不切

{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice(2, 4)) // [3,4]
    console.log(arr) // [1, 2, 3, 4, 5]
}

希望对您有帮助