美文网首页
04.【JS数组】内置方法:slice()与splice()

04.【JS数组】内置方法:slice()与splice()

作者: 唐唐_sugar | 来源:发表于2016-09-20 11:22 被阅读0次

    6.array.slice

    语法:arr.slice([begin[,end]])

    作用:从已有的数组中返回选定的元素。主要用于复制,可传入1或2个参数。

    • 返回值: 新数组
    • 是否改变原数组: 否
    • 是否为浅拷贝: 是
    • 参数传递个数:
      • 0 —— 浅拷贝得到一个新数组(用于复制)
      • 1 —— 复制从该位置到数组末尾的数组项
      • 2 —— 复制从第一个参数到第二个参数为止的数组项,不包括最后一项
    var arr1 = [0,1,2,3];
    var arr2 = arr1.slice();    //不传参,arr2为arr1的浅拷贝 arr2:[0,1,2,3]
    var arr3 = arr1.slice(1);   //只传1个参数  arr3:[1,2,3]
    var arr4 = arr1.slice(1,3); //传2个参数,复制arr1[1]到arr1[3]之间的的数组项,但不包括arr1[3]。arr3:[1,2]
    

    7.array.splice

    语法:arr.splice(start, deleteCount[, item1[, item2[, ...]]])

    作用: 插入、删除或替换数组的元素。该方法可删除从start处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换哪些被删除的元素

    • 返回值: 被删除的元素组成的数组
    • 是否改变原数组:是
    • 是否为浅拷贝: 是
    var arr1 = [0,1,2,3];
    //只删除
    var delElement1 = arr1.splice(1,2);  //删除arr1中从arr1[1]开始的两个元素
    console.log(delElement1);    //[1,2];delElement1.length = 2
    console.log(arr1);  //[0,3]
    
    //只增加
    var delElement2 = arr1.splice(1,0,4,5);  //从arr1[1]开始删除0个元素,并在此位置新增4,5两个元素
    console.log(delElement2);    //[];delElement2.length = 0
    console.log(arr1);  //[0,4,5,3]
    
    //只替换
    var delElement3 = arr1.splice(1,2,1,2);  //从arr1[1]开始删除2个元素,并在此位置新增1,2两个元素(删除2个再新增2个,即替换)
    console.log(delElement3);    //[4,5];delElement3.length = 2
    console.log(arr1);  //[0,1,2,3]
    
    //浅拷贝
    var arrTemp = ["a","b"]
    var delEle = arr1.splice(1,0,arrTemp);  //[];delEle.length = 0
    console.log(arr1);      //[0, ["a","b"], 1, 2, 3]
    arrTemp.push("c");      //arrTemp:  ["a","b","c"]
    console.log(arr1);      //[0, ["a","b","c"], 1, 2, 3]
    

    相关文章

      网友评论

          本文标题:04.【JS数组】内置方法:slice()与splice()

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