1. 程式人生 > >JS中slice和splice的區別

JS中slice和splice的區別

字串和陣列的操作雖然經常用,但是時間長了,細緻的部分忘記了,今天特地翻看了一下之前學習時候的筆記。

首先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"]