天天看點

slice,split,splice的差別與用法

1、slice:截取數組,傳回截取到的新數組,不改變原有數組

      arr.slice(start,end);

      start:必需,從原數組的start位置開始截取(包括下标為start的元素)。start-為負數,表示從尾部開始截取。如-1表示最後一個元素,-2表示倒數第二個元素

      end:可選,截取到的指定位置(不包括下标為end的元素)。沒有指定,則截取到最後一個元素。end要大于start,否則截取不到元素

     規則:

    A、隻傳一個參數時,且是負數,且絕對值小于length,該負數會和length相加在截取

var a = [1,2,3,4];
var b = a.slice(-1);  //b = [4]   a = [1,2,3,4]
           

    B、隻傳一個參數,且是負數,且絕對值大于大于等于length,則截取整個數組

var a = [1,2,3,4];
var b = a.slice(-4);  //b = [1,2,3,4]   a = [1,2,3,4]
           

    C、隻傳一個參數,且是正數,且大于等于length,則傳回空數組

var a = [1,2,3,4];
var b = a.slice(4);  //b = []   a = [1,2,3,4]
           

    D、隻傳一個參數,且是正數,小于length,從該參數的下标截取一直都數組尾

var a = [1,2,3,4];
var b = a.slice(1);  //b = [2,3,4]   a = [1,2,3,4]
           

    E、傳入兩個參數,有負數(不管先後順序,但結果必須保證第一個參數小于第二個參數才會截取到數值),負數先和length相加在截取

var a = [1,2,3,4];
var b = a.slice(1,-1);  //b = [2,3]   a = [1,2,3,4]


var a = [1,2,3,4];
var b = a.slice(-2,3);  
console.log(b)  //[3]

var a = [1,2,3,4];
var b = a.slice(-2,-1);  
console.log(b)  //[3]

var a = [1,2,3,4];
var b = a.slice(-2,-3);  
console.log(b)  //[]
           

2、splice:從數組中添加、删除元素,改變原有數組,傳回被删除的元素

slice,split,splice的差別與用法

删除元素

<script>
      var arr = ['a','b','c','d'];
      var delete = arr.splice(1,2) //從下标1開始,删除兩個元素
      console.log(arr);     //a,d
      console.log(delete)  // b,c
      
</script>
           

添加元素

<script>
    var arr = ['a','b','c','d'];
    var delete = arr.splice(1,0,'e','f'); //0-表示沒有删除元素
    console.log(arr);   // a,e,f,b,c,d
    console.log(delete);  //''-即傳回空的數組,因為沒有删除元素
</script>
           

3、split()用于把一個字元串切割為字元串數組,傳回新的字元串數組,每個變量用”,“分隔,源字元串不改變

     stringObject.split(seperator,howmany)

slice,split,splice的差別與用法

         示例

   1、按照不同方式分割字元串   

var str = ''how are?;
console.log(str.split(''));  //h,o,w,a,r,e,?  ( seperator = '',則把每個字元都分割)
console.log(str.split(' '));//how,are?
console.log(str.split(' ',1));//how