Home >Web Front-end >JS Tutorial >javascript method to delete array elements and clear array

javascript method to delete array elements and clear array

高洛峰
高洛峰Original
2017-02-25 16:14:131284browse

This article mainly introduces relevant information on simple methods of deleting array elements and clearing arrays in javascript. Friends in need can refer to

Simple methods of deleting array elements and clearing arrays in javascript

1. Clear the array

var ary = [1,2,3,4]; 
ary.splice(0,ary.length);//清空数组 
console.log(ary); // 输出 [],空数组,即被清空了

2. Delete the array elements

var ary = [1,2,3,4]; 
ary.splice(0,1);
或 ary.splice($.inArray(2, ary), 1); 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置。

Three, js several ways to delete an array

var arr=[‘a','b','c'];

If you want to delete the 'b' ', there are two methods:

**1, **delete method: delete arr[1]

In this way, the length of the array remains unchanged, and arr[1] becomes undefined. , but it also has the advantage that the index of the original array remains unchanged. At this time, if you want to traverse the array elements, you can use

for(index in arr)
{
 document.write('arr['+index+']='+arr[index]);
}

This traversal method skips undefined Element

* This method is supported by IE4.o and later

2, array object splice method: arr.splice(1,1);

this In this way, the length of the array changes accordingly, but the original array index also changes accordingly.

The first 1 in the splice parameter is the starting index of deletion (counting from 0), which is the second element of the array here.

The second 1 is the number of elements to be deleted. Only one element is deleted here, that is, 'b';

At this time, the array elements can be traversed in the normal way of traversing the array, such as for, because the deleted elements are not retained in the array

This method is only supported after IE5.5

It is worth mentioning that the splice method not only deletes the array elements, but also You can add new array elements


For example, arr.splice(1,1,'d','e'), the two elements d and e are added to the array arr

Result array Becomes arr:'a','d','e','c'

In addition, JavaScript truncates the array by setting the length property of the array, which is the only way to shorten the length of the array.


If you use the delete operator to delete an element in an array, although that element becomes undefined, the length property of the array does not change. There are two methods of deleting elements and changing the length of the array.

/*
  * 方法:Array.remove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组
*/
//经常用的是通过遍历,重构数组.
Array.prototype.remove=function(dx)
{
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
 }
 a = [&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;];
 alert("elements: "+a+"nLength: "+a.length);
 a.remove(0); //删除下标为0的元素
 alert("elements: "+a+"nLength: "+a.length);


/*
  * 方法:Array.baoremove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组.
  */
 //也可以用splice来实现.
 Array.prototype.baoremove = function(dx)
 { // www.jb51.net
if(isNaN(dx)||dx>this.length){return false;}
this.splice(dx,1);
 }
 b = [&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;];
 alert("elements: "+b+"nLength: "+b.length);
 b.baoremove(1); //删除下标为1的元素
 alert("elements: "+b+"nLength: "+b.length);

In IE5 or lower, JavaScript's Array object does not provide a ready-made method to delete array elements. In IE5.5+, although there is a splice method, it does not delete a certain item (or items), but only clears the value of a certain item (or items), which means that the item still exists. , the length of the array has not changed.

In fact, you can add a delete method to the array yourself (note that this refers to actually removing an item of the array from the array members). Perhaps, you will think of using a loop to reassign the array. This is certainly possible, but it is very inefficient.

The following introduces how to use the two methods slice and concat of the Array object to customize the deletion of the array.

Array.prototype.del=function(n) { //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
 if(n<0) //如果n<0,则不进行任何操作。
return this;
 else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
 concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
 这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
 组成的新数组,这中间,刚好少了第n项。
 slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
*/
}
//自己增加的方法
var test=new Array(0,1,2,3,4,5);
test=test.del(3); //从0算起,删除第4项。
alert(test);

Thank you for reading, I hope it can help you, thank you for your support of this site!

For more javascript related articles on methods of deleting array elements and clearing arrays, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn