Home  >  Article  >  Web Front-end  >  A simple way to delete array elements and clear the array in js

A simple way to delete array elements and clear the array in js

高洛峰
高洛峰Original
2017-01-14 11:25:572164browse

1. Clear the array

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

2. Delete array elements

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

3. Several ways to delete arrays in js

var arr=['a','b','c'];
To delete the 'b', there are two methods:

1, delete method: delete arr[ 1]

In this way, the length of the array remains unchanged. At this time, arr[1] becomes undefined, but it also has the advantage that the index of the original array remains unchanged. At this time, it can only be used to traverse the array elements.

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

This traversal method skips undefined elements
* This method is supported by IE4.o and later

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

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

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

The second 1 is the number of deleted elements, here only one element is deleted, that is, 'b';

This When traversing the array elements, you can use 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 can also add new array elements while deleting array elements.

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

The resulting array becomes arr:'a','d','e','c'

In addition, JavaScript sets the length of the array Property to truncate an array is the only way to shorten the length of an array.
If you use the delete operator to delete an element in the array, although that element becomes undefined, the length attribute 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);

Example 2,

/*
  * 方法: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 version, JavaScript Array (array) The 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);

The above code only uses the two methods of the Array object to achieve the basic requirements, which is good.

The above js simple method of deleting array elements and clearing arrays (must read) is all the content shared by the editor. I hope it can give you a reference, and I also hope that everyone will pay more attention to the PHP Chinese website.

For more js simple methods to delete array elements and clear 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