美文网首页
数组的splice 与 slice有什么区别

数组的splice 与 slice有什么区别

作者: 尤小小 | 来源:发表于2019-03-01 16:49 被阅读0次

splice

splice是数组的一个强大的方法,既可以添加元素,也可以删除元素,还是同时删除元素并添加元素,可以接受多个参数。

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

第一个参数是start,截取的初始位置
第二个参数是deleteCount,截取元素的个数
第三个及后面的参数,在删除位置参数的元素

使用splice的返回值是一个截取数组,这个方法会修改原数组,原数组此时是被截取后的数组了,splice可以不传参,返回一个空数组,也没有改变原数组;传一个参数的时候,代表从当前位置删除到数组尾部;

// 不传参 返回空数组
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice()) // []
    console.log(arr) //  [1,2,3,4,5]
}

// 一个参数 从当前序列号开始截取到数组尾部 返回截取到的数组 原数组此时为空数组了
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0)) // [1,2,3,4,5]
    console.log(arr) // []
}

// 两个参数 从当前序列号开始,截取指定元素的个数 返回截取的元素数组,原数组改变为剩下的元素的数组
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0, 2)) // [1,2]
    console.log(arr) // [3,4,5]
}

// 多个参数 从第一个参数的序列号开始,删除几个元素,然后再删除的位置,将剩下的参数插入
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(0, 2, 8, 9)) // [1,2]
    console.log(arr) // [8,9,3,4,5]
}

slice

slice方法被称为切片工具,最多可以接收两个参数

arr.slice([begin[, end]])
// 不传参 返回原数组
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice()) // [1, 2, 3, 4, 5]
    console.log(arr) // [1, 2, 3, 4, 5]
}

// 传一个参数 从当前序号开始切到数组尾部
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice(2)) // [3,4,5]
    console.log(arr) // [1, 2, 3, 4, 5]
}

// 传两个参数 第一个参数从当前序号开始切到 第二个参数,左闭右开,第二个参数的序列号不切
{
    let arr = [1, 2, 3, 4, 5]
    console.log(arr.slice(2, 4)) // [3,4]
    console.log(arr) // [1, 2, 3, 4, 5]
}

相关文章

网友评论

      本文标题:数组的splice 与 slice有什么区别

      本文链接:https://www.haomeiwen.com/subject/ohoduqtx.html