【原創】數組的刪除delete和splice用法區別

前言:javascript

無論是哪一種操做符執行刪除,都須要指定須要刪除的項,在數組中的索引值。html

 

第一種:delete

/****************第一種方法:delete****************/
	var arr = ["chai","yu","long","ni","hao"]
	delete arr[0];
	//console.log(arr);
	//alert(arr[0]);
	
	for(var i =0;i<arr.length;i++){	   	
		
        this_li ='<li>'+arr[i]+'</li>';       
       	$("#box").append(this_li);

	 }
	
	//返回
	/*
	<li>undefined</li>
	<li>yu</li>
	<li>long</li>
	<li>ni</li>
	<li>hao</li>
	*/
	
/****************第一種方法:delete****************/

結論java

/*
	結論:
	1,delete 刪除會將:①原值刪除; ②該值佔位符依然在;③ 原值改成:undefined
	2,數組長度不變;
*/

 

第二種:splice

/****************第二種方法:splice****************/
	var arr2 = ["chai","yu","long","ni","hao"]
	arr2.splice(0,1)              //指定的 (索引) 開始  (刪除 -若干) 元素
	alert(arr2)                   //返回:["yu","long","ni","hao"]
	
/****************第二種方法:splice****************/

結論: 數組

/*
	 結論:
	 1,刪除1個或多個;
	 2,原空位也刪除;
	 3,在本操做數組上執行;(這點主要是爲了區別數組的slice-截取而言的,此操做符是新建立一個數組。)
*/

 

 

【delete和splice對比結論:】

  1.  實際刪除是 splice(刪除了值和佔位符,且改變數組長度),而delete則值刪除了,佔位符還在,數組長度依然不變。
  2. splice刪除後,遍歷出來是乾淨的咱們須要的數組元素。
  3. 因此,實際項目中,可能splice更符合咱們的需求會更多些。

 

關於數組知識完整版,請移步:https://my.oschina.net/u/583531/blog/1525474 

相關文章
相關標籤/搜索