Navigation
These archived docs are for Phaser 2.6.1 Phaser 3 docs can be found on newdocs.phaser.io.
Phaser CE docs can be found on the Phaser CE Documentation site.

Constructor

Phaser. ArrayUtils

new ArrayUtils()

Utility functions for dealing with Arrays.

Source code: utils/ArrayUtils.js (Line 13)

Public Methods

<static> findClosest(value, arr) → {number}

Snaps a value to the nearest value in an array. The result will always be in the range [first_value, last_value].

Parameters
Name Type Description
value number

The search value

arr Array.<number>

The input array which must be sorted.

Returns
number -

The nearest value found.

Source code: utils/ArrayUtils.js (Line 172)

<static> getRandomItem(objects, startIndex, length) → {object}

Fetch a random entry from the given array.

Will return null if there are no array items that fall within the specified range or if there is no item for the randomly chosen index.

Parameters
Name Type Description
objects Array.<any>

An array of objects.

startIndex integer

Optional offset off the front of the array. Default value is 0, or the beginning of the array.

length integer

Optional restriction on the number of values you want to randomly select from.

Returns
object -

The random object that was selected.

Source code: utils/ArrayUtils.js (Line 27)

<static> removeRandomItem(objects, startIndex, length) → {object}

Removes a random object from the given array and returns it.

Will return null if there are no array items that fall within the specified range or if there is no item for the randomly chosen index.

Parameters
Name Type Description
objects Array.<any>

An array of objects.

startIndex integer

Optional offset off the front of the array. Default value is 0, or the beginning of the array.

length integer

Optional restriction on the number of values you want to randomly select from.

Returns
object -

The random object that was removed.

Source code: utils/ArrayUtils.js (Line 51)

<static> rotate(array) → {any}

This method is deprecated and should not be used. It may be removed in the future.

Moves the element from the start of the array to the end, shifting all items in the process. The "rotation" happens to the left.

Before: [ A, B, C, D, E, F ] After: [ B, C, D, E, F, A ]

See also Phaser.ArrayUtils.rotateRight

Parameters
Name Type Description
array Array.<any>

The array to rotate. The array is modified.

Returns
any -

The rotated value.

Deprecated:
  • Please use Phaser.ArrayUtils.rotate instead.
Source code: utils/ArrayUtils.js (Line 239)

<static> rotateLeft(array) → {any}

Moves the element from the start of the array to the end, shifting all items in the process. The "rotation" happens to the left.

Before: [ A, B, C, D, E, F ] After: [ B, C, D, E, F, A ]

See also Phaser.ArrayUtils.rotateRight

Parameters
Name Type Description
array Array.<any>

The array to rotate. The array is modified.

Returns
any -

The rotated value.

Source code: utils/ArrayUtils.js (Line 217)

<static> rotateMatrix(matrix, direction) → {Array.<Array.<any>>}

Rotates the given matrix (array of arrays).

Based on the routine from http://jsfiddle.net/MrPolywhirl/NH42z/.

Parameters
Name Type Description
matrix Array.<Array.<any>>

The array to rotate; this matrix may be altered.

direction number | string

The amount to rotate: the rotation in degrees (90, -90, 270, -270, 180) or a string command ('rotateLeft', 'rotateRight' or 'rotate180').

Returns
Array.<Array.<any>> -

The rotated matrix. The source matrix should be discarded for the returned matrix.

Source code: utils/ArrayUtils.js (Line 132)

<static> rotateRight(array) → {any}

Moves the element from the end of the array to the start, shifting all items in the process. The "rotation" happens to the right.

Before: [ A, B, C, D, E, F ] After: [ F, A, B, C, D, E ]

See also Phaser.ArrayUtils.rotateLeft.

Parameters
Name Type Description
array Array.<any>

The array to rotate. The array is modified.

Returns
any -

The shifted value.

Source code: utils/ArrayUtils.js (Line 195)

<static> shuffle(array) → {Array.<any>}

A standard Fisher-Yates Array shuffle implementation which modifies the array in place.

Parameters
Name Type Description
array Array.<any>

The array to shuffle.

Returns
Array.<any> -

The original array, now shuffled.

Source code: utils/ArrayUtils.js (Line 80)

<static> transposeMatrix(array) → {Array.<Array.<any>>}

Transposes the elements of the given matrix (array of arrays).

Parameters
Name Type Description
array Array.<Array.<any>>

The matrix to transpose.

Returns
Array.<Array.<any>> -

A new transposed matrix

Source code: utils/ArrayUtils.js (Line 101)

numberArray(start, end) → {Array.<number>}

Create an array representing the inclusive range of numbers (usually integers) in [start, end]. This is equivalent to numberArrayStep(start, end, 1).

Parameters
Name Type Description
start number

The minimum value the array starts with.

end number

The maximum value the array contains.

Returns
Array.<number> -

The array of number values.

Source code: utils/ArrayUtils.js (Line 262)

numberArrayStep(start, end, step) → {Array}

Create an array of numbers (positive and/or negative) progressing from start up to but not including end by advancing by step.

If start is less than end a zero-length range is created unless a negative step is specified.

Certain values for start and end (eg. NaN/undefined/null) are currently coerced to 0; for forward compatibility make sure to pass in actual numbers.

Parameters
Name Type Argument Default Description
start number

The start of the range.

end number <optional>

The end of the range.

step number <optional>
1

The value to increment or decrement by.

Returns
Array -

Returns the new array of numbers.

Source code: utils/ArrayUtils.js (Line 284)
Example
Phaser.ArrayUtils.numberArrayStep(4);
// => [0, 1, 2, 3]

Phaser.ArrayUtils.numberArrayStep(1, 5);
// => [1, 2, 3, 4]

Phaser.ArrayUtils.numberArrayStep(0, 20, 5);
// => [0, 5, 10, 15]

Phaser.ArrayUtils.numberArrayStep(0, -4, -1);
// => [0, -1, -2, -3]

Phaser.ArrayUtils.numberArrayStep(1, 4, 0);
// => [1, 1, 1]

Phaser.ArrayUtils.numberArrayStep(0);
// => []