splice()和slice()
Hello,everybody~
今天來個小細節的東西,js大家都不陌生了,不知道對js數組對象的幾個方法還有沒有印象,今天就來深入分析一下~
數組對象中有兩個比較相似的方法——splice和splice,看着很像,就是多了一個p,但是用法卻相當不一樣。
1、splice()
定義
用於插入、刪除或替換數組的元素,返回被刪除的項目。
語法
arrayObject.splice(index,howmany,element1,......,elementX)
參數
3個參數 2個必需 1個可選
① index:必需。該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。整數,規定添加或刪除項目的位置,使用負數,可以從數組結尾處規定位置。
② howmany:必需。要刪除的數量,規定應該刪除多少元素。必須是數字,但可以是 "0"。
如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
③ 第3個參數可選 在參數1的位置處,增加一個或多個項目。返回值是刪除的元素。
element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。
elementX 可選。可向數組添加若干元素。
elementX 可選。可向數組添加若干元素。
返回值
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
splice() 方法會直接對數組進行修改。
寫個小案例:
var color = new Array('red','blue','yellow','black');
var color2 = color.splice(2,3,'brown','pink');
alert(color); // 輸出 red,blue,brown,pink
alert(color2); // 輸出 yellow,black
擴展
splice()方法還可以用到數組去重中 代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var a=[1,4,1,6,4];
for(var i=0;i<=a.length-1;i++){
for(var j=i+1;j<a.length-1;j++){
if(a[i]===a[j]){
a.splice(j,1);
j- -;
}
}
}
document.write(a);
</script>
</body>
</html>
2、slice()
定義
slice() 方法可截取字符串的某個部分,並以新的字符串返回被提取的部分。
語法
stringObject.slice(start,end)
參數
start:要抽取的片斷的起始下標。
如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。
也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
end:緊接着要抽取的片段的結尾的下標。
end:緊接着要抽取的片段的結尾的下標。
若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。
如果該參數是負數,那麼它規定的是從字符串的尾部開始算起的位置。
返回值
一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)爲止的所有字符。
說明
String 對象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因爲它允許使用負數作爲參數。slice() 與 substr() 有所不同,因爲它用兩個字符的位置來指定子串,而 substr() 則用字符位置和長度來指定子串。
還要注意的是,String.slice() 與 Array.slice() 相似。
還要注意的是,String.slice() 與 Array.slice() 相似。
來看個小案例:
var color = new Array('red','blue','yellow','black');
var color2 = color.slice(1,2);
alert(color); //輸出 red,blue,yellow,black
alert(color2); //輸出 blue;注意:這裏只有第二項一個值
寫到這,大家應該都能回憶出來數組對象的很多方法了,今天寫的是寫法很相像的兩個方法,以後還會多多總結,未完待續......