Methods
concat()
JavaScript 1.2+, JScript 3+
Nav4+, IE4+
Syntax
var x = arrayObj.concat(arrayObj2 [, arrayObj3...]) var x = arrayObj.concat(Obj0 [,Obj1...])
The concat() method of instances of Array() returns a new instance of Array() with the arguments in the concat() method attached to the end, after the this array's elements. If the argument is an Array() object, the Array() object's members will be appended, instead of the Array() object itself. This does not mean a two-dimensional array's second dimension will bubble up to directly append its elements:
myArray = new Array("3","4") myAlt = ["5"] alert(myArray.concat("2",myAlt, "6")) // returns ["3","4","2","5","6"] alert(myArray.concat("2",myAlt, "6")[3].constructor) // returns String() constructor function myObj = new Array("x") myObj[0] = new Array("x") alert(myArray.concat("2", myObj )[3].constructor) // returns Array() constructor function
This method does not change the array which it references.
join()
JavaScript 1.1, JScript 3+
Nav3+, IE4+
Syntax
var x = arrayObj.join(joinString)
The join() method of instances of Array() returns a string containing the elements of the array in the order they held within their element list, separated by the first argument of the method. For instance, if the argument was ",", all elements would have a comma separating them from other elements, and nothing elseno spaces, no line returns, and so on.
This method does not change the array which it references.
pop()
JavaScript 1.2+, JScript 5+
Nav4+, IE5.5
Syntax
var x = arrayObj.pop()
The pop() method of instances of Array() extracts the last element of the array and returns it to the user. The last element is removed from the array.
Developers targeting earlier browsers may emulate this using the script shown in Listing 3.1.
Listing 3.1 Emulating Array().pop
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <script language="JavaScript" type="text/javascript"> <!-- function Array_pop() { var response = this[this.length - 1] this.length-- return response } if (typeof(Array.prototype.pop) == "undefined") { Array.prototype.pop = Array_pop } //--> </script> </body> </html>
push()
JavaScript 1.2+, JScript 5.5+
Nav4+, IE5.5
Syntax
arrayObj.push(arg0[, arg1[, arg2...]])
The push() method of instances of Array() appends the arguments provided in the method to the end of the array. For Netscape 4.004.05, this method returns the last new element of the array. For Netscape 4.06+ and Internet Explorer 5.5, it returns the new length property of the array.
Developers targeting earlier browsers may emulate this using the script shown in Listing 3.2.
Listing 3.2 Emulating Array().push
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <script language="JavaScript" type="text/javascript"> <!-- function Array_push() { var A_p = 0 for (A_p = 0; A_p < arguments.length; A_p++) { this[this.length] = arguments[A_p] } return this.length } if (typeof Array.prototype.push == "undefined") { Array.prototype.push = Array_push } //--> </script> </body> </html>
reverse()
JavaScript 1.1+, JScript 3+
Nav3+, IE4+
Syntax
arrayObj.reverse()
The reverse() method of instances of Array() reverses the ordering of elements in the array's element list. For example, the first element becomes the last element, and vice versa.
shift()
JavaScript 1.2+, JScript 5.5+
Nav4+, IE5.5+
Syntax
var x = arrayObj.shift()
The shift() method of instances of Array() extracts the first element in the array object's element list and returns it. The element returned is removed from the array altogether.
Developers targeting earlier browsers may emulate this using the script shown in Listing 3.3.
Listing 3.3 Emulating Array().shift
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <script language="JavaScript" type="text/javascript"> <!-- function Array_shift() { var A_s = 0 var response = this[0] for (A_s = 0; A_s < this.length-1; A_s++) { this[A_s] = this[A_s + 1] } this.length-- return response } if (typeof Array.prototype.shift == "undefined") { Array_prototype.shift = Array_shift } //--> </script> </body> </html>
slice()
JavaScript 1.2+, JScript 3+
Nav4+, IE4+
Syntax
var x = arrayObj.slice(startPos, endPos)
The slice() method of instances of Array() returns the elements of the this array between and including those elements whose index numbers of the array match the two arguments for this function.
If the second argument is negative, the method stops copying the array's elements x units from the end of the array, where x is the absolute value of the second argument.
This method does not change the array it references.
sort()
JavaScript 1.1+, JScript 3+
Nav3+, IE4+
Syntax
arrayObj.sort([funcname])The sort() method of instances of Array() sorts the this array's element list according to a function you provide as the method's only argument. Your function receives two arguments, which represent elements in the array. Create rules describing the relationships between these two objects. If you want the first element to precede the second after sorting, return +1 (or any positive number). If you want the first element to come after the second, return -1 (or any negative number). If the order does not matter, return 0.
If you do not provide such a function, JavaScript will sort your array by characters according to the language's ASCII codes. (This is a term indicating a listing of characters assigned special codes. ASCII codes are covered in more depth in Chapters 4, "String()" and 31, "Programable Elements.") Each element of the array this method treats as a string. This can result in 415 coming before 5. Write your sort functions carefully.
A typical sort function for numbers in an array is found in Listing 3.4, as the sortNumbers() function.
Listing 3.4 Sorting an Array of Numbers
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <p> <script language="JavaScript" type="text/javascript"> <!-- function sortNumbers(first, second) { return first-second } var x = [0, -4, 2, 6, 1] document.write("[" + x + "] ") x.sort(sortNumbers) document.write("sorts as ["+ x +"].") //--> </script> <!-- Result: [0,-4,2,6,1] sorts as [-4,0,1,2,6]. --> </p> </body> </html>
splice()
JavaScript 1.2+, JScript 5.5+
Nav4+, IE5.5+
Syntax
var x = arrayObj.splice(startIndex, cutTotal [, arg0 [, arg1...]])
The powerful splice() method of instances of Array() both removes and inserts elements based on the arguments you feed it. The first argument is an index number of the element list indicating where the method begins its work. The second argument tells the function how many elements of the array to remove starting at the indexed element. The remaining arguments are elements to add to the array after its indexed element.
If only one element of the array is to be returned, Netscape 4.004.05 browsers will return the element. Netscape 4.06+ and Internet Explorer 5.5 browsers will return an array containing the element as its only element. If two or more elements are to be returned, regardless of the circumstances, the method will return an array containing their values.
Developers targeting earlier browsers can emulate this using the script shown in Listing 3.5.
Listing 3.5 Emulating splice()
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <script language="JavaScript" type="text/javascript"> <!-- function Array_splice(index, delTotal) { var temp = new Array() var response = new Array() var A_s = 0 for (A_s = 0; A_s < index; A_s++) { temp[temp.length] = this[A_s] } for (A_s = 2; A_s < arguments.length; A_s++) { temp[temp.length] = arguments[A_s] } for (A_s = index + delTotal; A_s < this.length; A_s++) { temp[temp.length] = this[A_s] } for (A_s = 0; A_s < delTotal; A_s++) { response[A_s] = this[index + A_s] } this.length = 0 for (A_s = 0; A_s < temp.length; A_s++) { this[this.length] = temp[A_s] } return response } if (typeof Array.prototype.splice == "undefined") { Array.prototype.splice = Array_splice } //--> </script> </body> </html>
toString()
JavaScript 1.1+, JScript 3+
Nav3+, IE4+
Overrides Object.prototype.toString()
Syntax
var x = arrayObj.toString()
The toString() method of instances of Array() simply returns the same as this.join(","). See the join() method description for details.
toSource()
JavaScript 1.3+
Nav4.05+
Overrides Object.prototype.toSource()
Syntax
var x = arrayObj.toSource()
The toSource() method of instances of Array() provides a source-code breakdown of the array in question. Primarily this is for debugging purposes only, though you can look at it to see just what's in your array. The function returns the array as an array literal: ["red","green","blue"]
unshift()
JavaScript 1.2+, JScript 5.5+
Nav4+, IE5.5
Syntax
[var x =] arrayObj.unshift(arg0 [, arg1 [, arg2...]])
The unshift() method of instances of Array() inserts the arguments provided to the method at the beginning of the array, moving all other elements later in the chain. In Netscape 4+, it returns the new length of the Array() object.
Developers targeting earlier browsers may emulate this using the script shown in Listing 3.6.
Listing 3.6 Emulating unshift()
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title></title></head> <body> <script language="JavaScript" type="text/javascript"> <!-- function Array_unshift() { var A_u = 0 for (A_u = this.length-1; A_u >= 0; A_u--) { this[A_u + arguments.length] = this[A_u] } for (A_u = 0; A_u < arguments.length; A_u++) { this[A_u] = arguments[A_u] } return this.length } if (typeof Array.prototype.unshift == "undefined") { Array.prototype.unshift = Array_unshift } //--> </script> </body> </html>
valueOf()
JavaScript 1.1+, JScript 3.0+
Nav3+, IE4+
Overrides Object.prototype.valueOf()
Syntax
var x = arrayObj.valueOf()
The valueOf() method of instances of Array() returns the array itself as a literal object.