JS中slice和splice的區別
阿新 • • 發佈:2019-01-07
字串和陣列的操作雖然經常用,但是時間長了,細緻的部分忘記了,今天特地翻看了一下之前學習時候的筆記。
首先slice和splice猛的一看很相似,但是實際上用法差異性很大。
一、slice(可以用於陣列,也可以用於字串)
1.在陣列中的使用(擷取)
slice(引數一,引數二)
引數一:開始擷取的下標位置
引數二:結束擷取下標位置,但是不會擷取到該位置上的值
var newArray = [9, 5 , 2 , 7, "HEllO" , "world"]; var result1 = newArray.slice(1,4); console.log(result1);//[5,2,7] var result2 = newArray.slice(1); console.log(result2);//[5 , 2 , 7, "HEllO" , "world"]
注意:slice 擷取之後,會將擷取到的值,放到一個新陣列中,不會修改原陣列。
其中,引數二可以省略不寫,當不寫 引數二時,代表擷取到陣列的結束位置。
2.在字串中的使用(擷取)
slice(引數一,引數二):使用方式同陣列的方式
引數一:開始擷取的下標位置
引數二:結束擷取的下標位置,但是不會擷取到該位置上的值
str = "ILoveYou!"
var str1 = str.slice(1,5);
console.log(str1);// Love
var str2 = str.slice(1);
console.log(str2);// LoveYou!
注意引數二也可以省略,省略時,會從引數一擷取到字串結束位置
二、splice(只在陣列中使用:新增、刪除、替換)
1.新增(引數2為0)
splice(引數1,引數2,引數3,...):splice實現插入操作
引數1:要插入的下標位置
引數2:必須為零
引數3,...:是要插入的值(值得型別和個數沒有限制)
var array = [5,7,6]
array.splice(1, 0, 4, "99");
console.log(array);//[5,4, "99",7,6]
2.刪除(只有引數1,引數2)
splice(引數1,引數2):splice實現刪除
引數1:要刪除的下標位置
引數2:要刪除的個數
var array = [5,7,6] array.splice(1, 1); console.log(array);//[5,6]
3.替換
splice(引數1,引數2,引數3,...):splice實現替換
引數1:要替換的下標位置
引數2:替換的個數
引數3,...:是要替換的值(值得型別和個數沒有限制)
var array = [5,7,6]
array.splice(1, 2, 4, "99");
console.log(array);//[5,4, "99"]