resize( )
Topic group Related topics Example
Sets the size of an array to the specified dimensions and returns a numeric value representing the number of elements in the modified array.
Syntax
<oRef>.resize(<rows expN> [,<cols expN> [, <retain values expN>]])
<oRef>
A reference to the array whose size you want to change.
<rows expN>
The number of rows the resized array should have. <rows expN> must always be a positive, nonzero value.
<cols expN>
The number of columns the resized array should have. <cols expN> must always be 0 or a positive value. If you omit this option, resize( ) changes the number of rows in the array and leaves the number of columns the same.
<retain values expN>
Determines what happens to the values of the array when rows are added or removed. If it is nonzero, values are retained. If you want to specify a value for <retain values expN>, you must also specify a value for <new cols expN>.
Property of
Array
Description
Use resize( ) to change the dimensions of an array, making it larger or smaller, or change the number of dimensions. To determine the number of dimensions, check the array’s dimensions property. The size property of the array reflects the number of elements; for a one-dimensional array, that’s all you need to know. For a two-dimensional array, you can’t determine the number of rows or columns from the size property alone (unless the size is one—a one-by-one array). To determine the number of columns or rows in a two-dimensional array, use the ALEN( ) function.
For a one-dimensional array, you can change the number of elements by calling resize( ) and specifying the number of elements as <rows expN> parameter. You can also set the size property of the array directly, which is a bit less typing.
You can also change a one-dimensional array into a two-dimensional array by specifying both a <rows expN> and a nonzero <cols expN> parameter. This makes the array the designated size.
For a two-dimensional array, you can specify a new number of rows or both row and column dimensions for the array. If you omit <cols expN>, the <rows expN> parameter sets the number of rows only. With both a <rows expN> and a nonzero <cols expN>, the array is changed to the designated size.
You can change a two-dimensional array to a one-dimensional array by specifying <cols expN> as zero and <rows expN> as the number of elements.
To change the number of columns only for a two-dimensional array, you will need to specify both the <rows expN> and <cols expN> parameters, which means that you have to determine the number of rows in the array, if not known, and specify it unchanged as the <rows expN> parameter.
To add a single row or column to an array, use the grow( ) method.
If you add or remove columns from the array, you can use <retain values expN> to specify how you want existing elements to be placed in the new array. If <retain values expN> is zero or isn’t specified, resize( ) rearranges the elements, filling in the new rows or columns or adjusting for deleted elements, and adding or removing elements at the end of the array, as needed. This is shown in the following two figures. You are most likely to want to do this if you don't need to refer to existing items in the array; that is, you plan to update the array with new values.
When you use resize( ) on a one-dimensional array, you might want the original row to become the first column of the new array. Similarly, when you use resize( ) on a two-dimensional array, you might want existing two-dimensional array elements to remain in their original positions. You are most likely to want to do this if you need to refer to existing items in the array by their subscripts; that is, you plan to add new values to the array while continuing to work with existing values.
If <retain values expN> is a nonzero value, resize( ) ensures that elements retain their original values. The following two figures repeat the statements shown in the previous two figures, with the addition of a value of 1 for <retain values expN>.