天天看點

splice和slice總結

<!DOCTYPE html>

<html >

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

</body>

<script>

function aa(){

var arr1 = ['a','b','c','d','e','f','g'];

var arr2 = arr1.slice(-5);

console.log(arr2,arr1);

var arr3 = arr1.slice(-7);

console.log(arr3,arr1);

var arr4 = arr1.slice(-8,3);

console.log(arr4,arr1);

var arr5 = arr1.slice(-2,6);

console.log(arr5,arr1);

}

aa();

   var a1 = [1,2,3,4,5,6,7]

   //删除

   var b1 = a1.splice(-9,3);

   console.log(a1,b1);

   //插入  1之前插入

   var a2 = [1,2,3,4,5,6,7]

   var b2 = a2.splice(-9,-2,'rr','tt');

   console.log(a2,b2);

   //替換 

   var a3 = [1,2,3,4,5,6,7]

   var b3 = a3.splice(9,-3,'qq','ee');

   console.log(a3,b3);

//總結:

//slice(原數組不會改變):1、一個參數表示從開始位置到length-1;如果是負數則先加上array.length,為負輸出整個數組,為正則表示該數值為起始位置到length-1;

//2、兩個正參數(n1,n2)并且n1<n2,也就是前一個參數小于後一個表示:[n1,n2)即從n1到n2-1;

//3、兩個負數傳回空,後一個參數小于前一個傳回空,大于數組長度傳回空;

//4、一正一負,負數+array.length再判斷(如果還是負,負數就當成0),滿足以上2還是3即可。

//splice(原數組會改變),splice(位置參數(必選),個數參數(必選),插入/替換字元(可選),插入/替換字元(可選).....)

//1、位置參數(若為負數+array.length,計算一次為負當成0,為正則為起始位置),參數為正數就直接為起始位置;

//2、個數參數不為正時均按0來判斷。後面有可選參數時:個數參數為正數時,則為替換,否則為插入(在起始位置前插入)。

</script>

</html>