JS數組對象的splice()和slice()的區別

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  可選。可向數組添加若干元素。  


返回值

如果從 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:緊接着要抽取的片段的結尾的下標。
若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。
如果該參數是負數,那麼它規定的是從字符串的尾部開始算起的位置。

返回值

一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)爲止的所有字符。


說明

String 對象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因爲它允許使用負數作爲參數。slice() 與 substr() 有所不同,因爲它用兩個字符的位置來指定子串,而 substr() 則用字符位置和長度來指定子串。
還要注意的是,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;注意:這裏只有第二項一個值


寫到這,大家應該都能回憶出來數組對象的很多方法了,今天寫的是寫法很相像的兩個方法,以後還會多多總結,未完待續...... 吐舌頭







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章