【原创】数组的删除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 

相关文章
相关标签/搜索