Skip to content

Array

arrayEquals<T>(array1, array2): boolean

Defined in: packages/isaacscript-common/src/functions/array.ts:13

Helper function for determining if two arrays contain the exact same elements. Note that this only performs a shallow comparison.

T

readonly T[]

readonly T[]

boolean


arrayRemove<T>(originalArray, …elementsToRemove): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:36

Builds a new array based on the original array without the specified element(s). Returns the new array. If the specified element(s) are not found in the array, it will simply return a shallow copy of the array.

If there is more than one matching element in the array, this function will remove all of them.

This function is variadic, meaning that you can specify N arguments to remove N elements.

T

readonly T[]

…readonly T[]

T[]


arrayRemoveAllInPlace<T>(array, …elementsToRemove): boolean

Defined in: packages/isaacscript-common/src/functions/array.ts:65

Removes all of the specified element(s) from the array. If the specified element(s) are not found in the array, this function will do nothing.

This function is variadic, meaning that you can specify N arguments to remove N elements.

If there is more than one matching element in the array, this function will remove every matching element. If you want to only remove the first matching element, use the arrayRemoveInPlace function instead.

T

T[]

…readonly T[]

boolean

True if one or more elements were removed, false otherwise.


arrayRemoveIndex<T>(originalArray, …indexesToRemove): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:93

Shallow copies and removes the elements at the specified indexes from the array. Returns the copied array. If the specified indexes are not found in the array, it will simply return a shallow copy of the array.

This function is variadic, meaning that you can specify N arguments to remove N elements.

T

readonly T[]

…readonly int[]

T[]


arrayRemoveIndexInPlace<T>(array, …indexesToRemove): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:118

Removes the elements at the specified indexes from the array. If the specified indexes are not found in the array, this function will do nothing.

This function is variadic, meaning that you can specify N arguments to remove N elements.

T

T[]

…readonly int[]

T[]

The removed elements. This will be an empty array if no elements were removed.


arrayRemoveInPlace<T>(array, …elementsToRemove): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:159

Removes the specified element(s) from the array. If the specified element(s) are not found in the array, this function will do nothing.

This function is variadic, meaning that you can specify N arguments to remove N elements.

If there is more than one matching element in the array, this function will only remove the first matching element. If you want to remove all of the elements, use the arrayRemoveAllInPlace function instead.

T

T[]

…readonly T[]

T[]

The removed elements. This will be an empty array if no elements were removed.


arrayToString(array): string

Defined in: packages/isaacscript-common/src/functions/array.ts:178

readonly unknown[]

string


combineArrays<T>(…arrays): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:196

Helper function to combine two or more arrays. Returns a new array that is the composition of all of the specified arrays.

This function is variadic, meaning that you can specify N arguments to combine N arrays. Note that this will only perform a shallow copy of the array elements.

T

…readonly readonly T[][]

T[]


copyArray<T>(oldArray, numElements?): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:215

Helper function to perform a shallow copy.

T

readonly T[]

The array to copy.

int

Optional. If specified, will only copy the first N elements. By default, the entire array will be copied.

T[]


emptyArray(array): void

Defined in: packages/isaacscript-common/src/functions/array.ts:233

Helper function to remove all of the elements in an array in-place.

unknown[]

void


filterMap<OldT, NewT>(array, func): readonly NewT[]

Defined in: packages/isaacscript-common/src/functions/array.ts:248

Helper function to perform a filter and a map at the same time. Similar to Array.map, provide a function that transforms a value, but return undefined if the value should be skipped. (Thus, this function cannot be used in situations where undefined can be a valid array element.)

This function is useful because the Array.map method will always produce an array with the same amount of elements as the original array.

This is named filterMap after the Rust function: https://doc.rust-lang.org/std/iter/struct.FilterMap.html

OldT

NewT

readonly OldT[]

(element) => NewT | undefined

readonly NewT[]


getArrayCombinations<T>(array, includeEmptyArray, min?, max?): readonly readonly T[][]

Defined in: packages/isaacscript-common/src/functions/array.ts:288

Helper function to get all possible combinations of the given array. This includes the combination of an empty array.

For example, if this function is provided an array containing 1, 2, and 3, then it will return an array containing the following arrays:

  • [] (if includeEmptyArray is set to true)
  • [1]
  • [2]
  • [3]
  • [1, 2]
  • [1, 3]
  • [2, 3]
  • [1, 2, 3]

From: https://github.com/firstandthird/combinations/blob/master/index.js

T

readonly T[]

The array to get the combinations of.

boolean

Whether to include an empty array in the combinations.

int

Optional. The minimum number of elements to include in each combination. Default is 1.

int

Optional. The maximum number of elements to include in each combination. Default is the length of the array.

readonly readonly T[][]


getArrayDuplicateElements<T>(array): readonly T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:322

Helper function to get the duplicate elements in an array. Only one element for each value will be returned. The elements will be sorted before they are returned.

T extends string | number

readonly T[]

readonly T[]


getArrayIndexes(array): readonly int[]

Defined in: packages/isaacscript-common/src/functions/array.ts:348

Helper function to get an array containing the indexes of an array.

For example, an array of ["Apple", "Banana"] would return an array of [0, 1].

Note that normally, you would use the Object.keys method to get the indexes of an array, but due to implementation details of TypeScriptToLua, this results in an array of 1 through N (instead of an array of 0 through N -1).

readonly unknown[]

readonly int[]


getHighestArrayElement(array): number | undefined

Defined in: packages/isaacscript-common/src/functions/array.ts:356

Helper function to get the highest value in an array. Returns undefined if there were no elements in the array.

readonly number[]

number | undefined


getLowestArrayElement(array): number | undefined

Defined in: packages/isaacscript-common/src/functions/array.ts:378

Helper function to get the lowest value in an array. Returns undefined if there were no elements in the array.

readonly number[]

number | undefined


getRandomArrayElement<T>(array, seedOrRNG, exceptions?): T

Defined in: packages/isaacscript-common/src/functions/array.ts:408

Helper function to get a random element from the provided array.

If you want to get an unseeded element, you must explicitly pass undefined to the seedOrRNG parameter.

T

readonly T[]

The array to get an element from.

RNG | Seed | undefined

The Seed or RNG object to use. If an RNG object is provided, the RNG.Next method will be called. If undefined is provided, it will default to a random seed.

readonly T[] = []

Optional. An array of elements to skip over if selected.

T


getRandomArrayElementAndRemove<T>(array, seedOrRNG, exceptions?): T

Defined in: packages/isaacscript-common/src/functions/array.ts:444

Helper function to get a random element from the provided array. Once the random element is decided, it is then removed from the array (in-place).

If you want to get an unseeded element, you must explicitly pass undefined to the seedOrRNG parameter.

T

T[]

The array to get an element from.

RNG | Seed | undefined

The Seed or RNG object to use. If an RNG object is provided, the RNG.Next method will be called. If undefined is provided, it will default to a random seed.

readonly T[] = []

Optional. An array of elements to skip over if selected.

T


getRandomArrayIndex(array, seedOrRNG, exceptions?): int

Defined in: packages/isaacscript-common/src/functions/array.ts:472

Helper function to get a random index from the provided array.

If you want to get an unseeded index, you must explicitly pass undefined to the seedOrRNG parameter.

readonly unknown[]

The array to get the index from.

RNG | Seed | undefined

The Seed or RNG object to use. If an RNG object is provided, the RNG.Next method will be called. If undefined is provided, it will default to a random seed.

readonly int[] = []

Optional. An array of indexes that will be skipped over when getting the random index. Default is an empty array.

int


includes<T, TupleElement>(array, searchElement): searchElement is TupleElement

Defined in: packages/isaacscript-common/src/functions/array.ts:492

Similar to the Array.includes method, but works on a widened version of the array.

This is useful when the normal Array.includes produces a type error from an array that uses an as const assertion.

T

TupleElement

readonly TupleElement[]

WidenLiteral<T>

searchElement is TupleElement


isArray(object, ensureContiguousValues?): object is unknown[]

Defined in: packages/isaacscript-common/src/functions/array.ts:511

Since Lua uses tables for every non-primitive data structure, it is non-trivial to determine if a particular table is being used as an array. isArray returns true if:

  • the table contains all numerical indexes that are contiguous, starting at 1
  • the table has no keys (i.e. an “empty” table)

unknown

The object to analyze.

boolean = true

Optional. Whether the Lua table has to have all contiguous keys in order to be considered an array. Default is true.

object is unknown[]


isArrayContiguous(array): boolean

Defined in: packages/isaacscript-common/src/functions/array.ts:556

Helper function to see if every element in the array is N + 1.

For example, [2, 3, 4] would return true, and [2, 3, 5] would return false.

readonly int[]

boolean


isArrayElementsUnique(array): boolean

Defined in: packages/isaacscript-common/src/functions/array.ts:574

Helper function to check if all the elements of an array are unique within that array.

Under the hood, this is performed by converting the array to a set.

readonly unknown[]

boolean


isArrayInArray<T>(arrayToMatch, parentArray): boolean

Defined in: packages/isaacscript-common/src/functions/array.ts:580

Checks if an array is in the provided 2-dimensional array.

T

readonly T[]

readonly readonly T[][]

boolean


setAllArrayElements<T>(array, value): void

Defined in: packages/isaacscript-common/src/functions/array.ts:589

Helper function to set every element in an array to a specific value.

T

T[]

T

void


shuffleArray<T>(originalArray, seedOrRNG): T[]

Defined in: packages/isaacscript-common/src/functions/array.ts:608

Shallow copies and shuffles the array using the Fisher-Yates algorithm. Returns the copied array.

If you want an unseeded shuffle, you must explicitly pass undefined to the seedOrRNG parameter.

From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array

T

readonly T[]

The array to shuffle.

RNG | Seed | undefined

The Seed or RNG object to use. If an RNG object is provided, the RNG.Next method will be called. If undefined is provided, it will default to a random seed.

T[]


shuffleArrayInPlace(array, seedOrRNG): void

Defined in: packages/isaacscript-common/src/functions/array.ts:632

Shuffles the provided array in-place using the Fisher-Yates algorithm.

If you want an unseeded shuffle, you must explicitly pass undefined to the seedOrRNG parameter.

From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array

unknown[]

The array to shuffle.

RNG | Seed | undefined

The Seed or RNG object to use. If an RNG object is provided, the RNG.Next method will be called. If undefined is provided, it will default to a random seed.

void


sumArray(array): number

Defined in: packages/isaacscript-common/src/functions/array.ts:650

Helper function to sum every value in an array together.

readonly number[]

number


swapArrayElements(array, i, j): void

Defined in: packages/isaacscript-common/src/functions/array.ts:657

Helper function to swap two different array elements. (The elements will be swapped in-place.)

unknown[]

number

number

void