JS array Operation Daquan (GO)
Blog Category:
Jsjs array Operation shift: Deletes the first item of the original array and returns the value of the deleted element, or undefined if the array is empty
JavaScript code
- 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
JavaScript code
- 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 Test return value is 7, so the return value of this method is not reliable, need to use the return value when the splice can be used instead of this method.
Pop: Deletes the last item of the original array and returns the value of the deleted element; returns undefined if the array is empty
JavaScript code
- var a = [1,2,3,4,5];
- var B = A.pop (); //a:[1,2,3,4] B:5
Push: Adds a parameter to the end of the original array and returns the length of the array
JavaScript code
- 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 consists of adding parameters to the original array
JavaScript code
- 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 item from the start position and inserts val1,val2 from that position,...
JavaScript code
- 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); //with pop
- A.splice (a.length,0,6,7); var b = a.length; //with push
Reverse: Reverse the array
JavaScript code
- 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): Sorts the array by the specified parameters
JavaScript code
- 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 that consists of the entries from the original array that specify the starting subscript to the end subscript
JavaScript code
- 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 group of the array as a string, separator as a delimiter, or by default with a comma delimiter if omitted
JavaScript code
- var a = [1,2,3,4,5];
- var B = a.join ("|"); //a:[1,2,3,4,5] B: "1|2|3|4|5"
An array is an internal object provided by JavaScript, which is a standard set of elements that we can add (push), delete (shift) inside, and we can also iterate through the elements in a for loop, so can we have other collections in JavaScript besides arrays?
Because of the language nature of JavaScript, we can add and remove properties to common objects dynamically. So object can also be seen as a special set of JS. The following compares the attributes of array and object:
JavaScript code
- Array:
- /* NEW: */var ary = new Array (), or var ary = [];
- /* Add: */ary.push (value);
- /* Delete: */deleteary[n];
- /* Traversal: */for ( var i=0; i < ary.length; ++i) ary[i];
- Object:
- /* NEW: */var obj = new Object (); or var obj = {};
- /* Add: */obj[key] = value; (Key is String)
- /* Delete: */deleteObj[key];
- /* Traversal: */for ( var key in obj) Obj[key];
From the above comparison, you can see that object can be used as a collection, and in the use of the popup window to create an infinite level Web page menu (3) I introduced the __menucache__ that Eric implements, which is a mock collection object.
If we want to retrieve a specified value in the array, we need to traverse the entire array:
Code:
JavaScript code
- var keyword =;
- for ( var i=0; i < ary.length; ++i)
- {
- if (ary[i] = = keyword)
- {
- Todo
- }
- }
Instead, we retrieve an entry for the specified key in object, just to use:
Code:
JavaScript code
- var key = ';
- var value = Obj[key];
- Todo
This feature of object can be used to efficiently retrieve a unique set of strings, the time complexity of traversing an array is O (n), and the time complexity of traversing an object is O (1). Although for the 10,000-time set of the cost of dozens of MS, but if it is 1000*1000 or more, the advantage of using object is reflected. Before this I made a mapping, the 100 unique characters mapping to 1000 string array, time-consuming 25-30s! later changed the for traversal to the object simulation of the collection of member references, the same amount of data mapping, Time-consuming only 1.7-2S!!!
Traversal efficiency (high to low) for a collection: var = obj[key]; > for (;;) > for (in). The least efficient is for (in), if the collection is too large, try not to use a for (in) traversal.
JS Array Operation Daquan