JS Remove the elements of the array function introduction _javascript tips

Source: Internet
Author: User
Tags array length javascript array

Split converts a string to an array and outputs the code:

Copy Code code as follows:

<script language= "JavaScript" >
function Spli () {
Datastr= "2,2,3,5,6,6";
var str= new Array ();
Str=datastr.split (",");
for (i=0;i<str.length; i++)
{
document.write (str[i]+ "<br/>");
}
}
Spli ();
</script>

JS Delete array elements:

var arr=[' A ', ' B ', ' C '];
There are two ways to delete a ' B ' in it:

1.delete method: Delete Arr[1]

This way the array length does not change, at this time arr[1] becomes undefined, but also has the advantage the index of the original array also remains unchanged, at this time to enumerate the elements of the group can be used

Copy Code code as follows:

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


This traversal way skips over the elements of the undefined

* This way IE4.O after the support of the

2. Array Object Splice method: Arr.splice (1,1);

This way the array length changes, but the original array index changes accordingly
The first 1 in the splice parameter is the starting index of the deletion (starting from 0), which is the second element of the array
The second 1 is to delete the number of elements, where only one element is deleted, i.e. ' B ';
Traversing an array element at this time can be used to traverse the array in a normal way, for example, because the deleted element
The array does not hold

* This method IE5.5 later support

It is worth mentioning that the splice method can be added to an array element while deleting an array element
For example Arr.splice (1,1, ' d ', ' e '), d,e two elements are added to the array arr
The resulting array becomes arr: ' A ', ' d ', ' e ', ' C '

JavaScript truncating an array by setting the length property of an array is the only one by one way to shorten the length of an array. If you use the delete operator to delete elements in an array, the length property of the array does not change the two deletion elements, although that element becomes undefined. The array length also changes the method.

/*
* Method: Array.remove (DX)
* Function: Deletes an array element.
* Parameter: DX Deletes the subscript of the element.
* Return: Modify the array on the original array
*/
  
It is commonly used to refactor arrays by traversing them.

Copy Code code as follows:

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 = [' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 '];
Alert ("Elements:" +a+ "nlength:" +a.length);
A.remove (0); Delete the element with subscript 0
Alert ("Elements:" +a+ "nlength:" +a.length);

Copy Code code as follows:

/*
* Method: Array.baoremove (DX)
* Function: Deletes an array element.
* Parameter: DX Deletes the subscript of the element.
* Return: Modifies the array on the original array.
*/
  
We can also use splice to achieve.
  
Array.prototype.baoremove = function (dx)
{
if (isNaN (dx) | | Dx>this.length) {return false;}
This.splice (dx,1);
}
b = [' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 '];
Alert ("Elements:" +b+ "nlength:" +b.length);
B.baoremove (1); Delete the element with subscript 1
Alert ("Elements:" +b+ "nlength:" +b.length);

As we know, in IE5 or lower versions, the JavaScript array object does not provide a ready-made way to delete an array element. In the ie5.5+ version, although there is a splice method, it is not deleting an item (or several items), but simply clearing the value of an item (or items), meaning that the item still exists, and the length of the array does not change.

In fact, we can add a deletion method to our own array (note that this refers to the true removal of an item from an array member). You might want to use loops to reassign values to an array, which can be done, but it's inefficient.

Here we introduce a method that uses the array object's two methods slice, concat to customize the delete array.

The specific code is as follows, please note the comments inside.

Copy Code code as follows:

Array.prototype.del=function (n) {//n represents the first few items, starting from 0.
Prototype is an object prototype, note the method for adding a custom method to an object.
if (n<0)//If n<0, no action is made.
return this;
Else
Return This.slice (0,n). Concat (This.slice (n+1,this.length));
/*
Concat method: Returns a new array, which is a combination of two or more arrays.
This is the return to This.slice (0,n)/this.slice (n+1,this.length)
Consists of a new array, which, in the middle, is just missing the nth item.
Slice method: Returns a section of an array, two parameters, specifying the start and end positions respectively.
*/
}
Let's try this one's own way.
var test=new Array (0,1,2,3,4,5);
Test=test.del (3); From 0, this is the deletion of item 4th.
alert (test);

In this way, only flexible use of the array object of the two methods, the implementation of our requirements.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.