JavaScript for array Append method summary _javascript Tips

Source: Internet
Author: User

JavaScript to add elements to the array is a very simple question, JavaScript itself provides a large number of such functions, we can use the JS function to quickly add elements to the array, this article on JavaScript to do array Append method to make the following summary.

It used to be the Arr.concat (arr2) method to append an array, as shown in the following example:

Copy Code code as follows:

<script type= "Text/javascript" >
var arr = new Array (3);
ARR[0] = "Test array 1 is 1";
ARR[1] = "Test array 1 is 2";
ARR[2] = "Test array 1 is 3";
var arr2 = new Array (3);
ARR2[0] = "Test array 2 is 1";
ARR2[1] = "Test array 2 is 2";
ARR2[2] = "Test array 2 is 3";
document.write (Arr.concat (ARR2) + "<br/>");
document.write ("Arr.concat 2", "Your Uncle 3") + "<br/>")
</script>

Many people to JS array elements of the addition and deletion has been confused, now gives the following test code:
Copy Code code as follows:

var arr = new Array ();
Arr[0] = "AAA";
ARR[1] = "BBB";
ARR[2] = "CCC";
alert (arr.length);//3
Arr.pop ();
alert (arr.length);//2
Alert (arr[arr.length-1]);//bbb
Arr.pop ();
Alert (arr[arr.length-1]);//aaa
alert (arr.length);//1
var arr2 = new Array ();
alert (arr2.length);//0
Arr2[0] = "AAA";
ARR2[1] = "BBB";
alert (arr2.length);//2
Arr2.pop ();
alert (arr2.length);//1
ARR2 = Arr2.slice (0,arr2.length-1);
alert (arr2.length);//0
Arr2[0] = "AAA";
ARR2[1] = "BBB";
ARR2[2] = "CCC";
ARR2 = Arr2.slice (0,1);
alert (arr2.length);//1
Alert (arr2[0]);//aaa
Alert (arr2[1]);//undefined
Shift: Deletes the first item of the original array and returns the value of the deleted element, or returns undefined if the array is empty
var a = [1,2,3,4,5];
var B = A.shift (); a:[2,3,4,5] B:1
Unshift: Adds a parameter to the beginning of the original array and returns the length of the array
var a = [1,2,3,4,5];
var B = A.unshift ( -2,-1); a:[-2,-1,1,2,3,4,5] B:7
Note: The test return value under IE6.0 is always undefined,ff2.0 the test return value is 7, so the return value of this method is unreliable, and it is necessary to use splice instead of this method with the return value.
Pop: Deletes the last item of the original array and returns the value of the deleted element, or returns undefined if the array is empty
var a = [1,2,3,4,5];
var B = A.pop (); a:[1,2,3,4] B:5//No need to return the words directly call it
Push: Adds a parameter to the end of the original array and returns the length of the array
var a = [1,2,3,4,5];
var B = A.push (6,7); a:[1,2,3,4,5,6,7] B:7
Concat: Returns a new array that adds a parameter to the original array.
var a = [1,2,3,4,5];
var B = A.concat (6,7); a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
Splice (Start,deletecount,val1,val2,...) : Deletes the DeleteCount entry from the start position and inserts the Val1,val2 from that location,...
var a = [1,2,3,4,5];
var B = A.splice (2,2,7,8,9); a:[1,2,7,8,9,5] b:[3,4]
var B = a.splice (0,1); With shift
A.splice (0,0,-2,-1); var B = a.length; With Unshift
var B = A.splice (a.length-1,1); Same pop
A.splice (a.length,0,6,7); var B = a.length; Same push
Reverse: Reverse-order the array
var a = [1,2,3,4,5];
var B = A.reverse (); a:[5,4,3,2,1] b:[5,4,3,2,1]
Sort (orderfunction): Sorting by specified array of parameters
var a = [1,2,3,4,5];
var B = A.sort (); a:[1,2,3,4,5] b:[1,2,3,4,5]
Slice (Start,end): Returns a new array of items from the original array specifying the start subscript to the end subscript
var a = [1,2,3,4,5];
var B = a.slice (2,5); a:[1,2,3,4,5] b:[3,4,5]
Join (Separator): Sets the element of an array to a string, separator as a delimiter, and omitted by default with a comma as the delimiter
var a = [1,2,3,4,5];
var B = A.join ("|"); a:[1,2,3,4,5] B: "1|2|3|4|5"
Then give an array to simulate the Javastringbuffer processing string method:
/**
* String handler function
*/
function StringBuffer ()
{
var arr = new Array;
This.append = function (str)
{
Arr[arr.length] = str;
};
this.tostring = function ()
{
Return Arr.join (""); Ping append incoming array into a string
};
}
Today, a join is suddenly found in applications as a good way to convert an array into a string, so it is encapsulated as an object using:
/**
* Converts an array into a string that is separated by a particular symbol
*/
function arraytostring (arr,separator)
{
if (!separator) separator = "";//separator null defaults to NULL
return Arr.join (separator);
}
/**
* Find the string contained in the array
*/
function arrayfindstring (arr,string)
{
var str = arr.join ("");
return Str.indexof (String);
}


Finally there is a question about push.apply appending an array to the likes of playing a.push.apply (A, b); The friend of this practice a test
A.push.apply (A, b); this kind of thinking cool, do not need to write for the loop of the writing, has not encountered any problems, until today I want to append B is a very large array when I met the pit.

Copy Code code as follows:

A = new Array ();
b = new Array (125624);
A.push.apply (A, b);


The above code throws the following exception under the Mac Chrome

uncaught rangeerror:maximum Call stack size exceeded

If you change the array to B = new Array (125623), small one element is good, test the other browsers also have a large array of errors, but different browser thresholds vary

The advice given here is to be honest with foreach, not only to avoid the exception of large arrays, but also to consider foreach as the fastest in terms of performance

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.