home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  

Previous Section Next Section

3.6 Combining Arrays

NN 4, IE 4

3.6.1 Problem

You want to blend two or more separate arrays into one larger array.

3.6.2 Solution

To join arrays together, use the concat( ) method of the array object, passing a reference to the other array as a parameter:

var comboArray = myArray.concat(anotherArray);

Arrays joined through the concat( ) method are not altered. Instead, the concat( ) method returns the combined array as a new value, which you can preserve in a separate variable. The base array (the one used to invoke the concat( ) method) comes first in the combined array.

For combining multiple arrays, pass the additional arrays as comma-delimited parameters to the concat( ) method:

var comboArray = myArray.concat(otherArray1, otherArray2, otherArray3);

The combined array has items in the same order as they appear in the comma-delimited arguments.

3.6.3 Discussion

The concat( ) method is not limited to tacking one array onto another. Comma-delimited parameters to the method can be any data type. A value of any data type other than an array becomes another entry in the main array—in the same sequence as the parameters. You can even combine arrays and other data types in the group of parameters passed to the method.

In addition to the concat( ) method, a quartet of array methods let you treat an array like a stack for tacking on and removing items from the front or backends of the array. The push( ) method lets you append one or more items to the end of an array; the corresponding pop( ) method removes the last item from the array and returns its value. You can perform the same operations at the beginning of the array with the unshift( ) (append) and shift( ) (remove) methods. All four of these methods are implemented in NN 4 or later and IE 5.5 or later for Windows.

3.6.4 See Also

Recipe 3.5 for sorting an array—something you may wish to do once you add to an array; Recipe 3.7 for dividing an array.

    Previous Section Next Section