Array
Functions
Section titled “Functions”arrayEquals()
Section titled “arrayEquals()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”array1
Section titled “array1”readonly T[]
array2
Section titled “array2”readonly T[]
Returns
Section titled “Returns”boolean
arrayRemove()
Section titled “arrayRemove()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”originalArray
Section titled “originalArray”readonly T[]
elementsToRemove
Section titled “elementsToRemove”…readonly T[]
Returns
Section titled “Returns”T[]
arrayRemoveAllInPlace()
Section titled “arrayRemoveAllInPlace()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”T[]
elementsToRemove
Section titled “elementsToRemove”…readonly T[]
Returns
Section titled “Returns”boolean
True if one or more elements were removed, false otherwise.
arrayRemoveIndex()
Section titled “arrayRemoveIndex()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”originalArray
Section titled “originalArray”readonly T[]
indexesToRemove
Section titled “indexesToRemove”…readonly int[]
Returns
Section titled “Returns”T[]
arrayRemoveIndexInPlace()
Section titled “arrayRemoveIndexInPlace()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”T[]
indexesToRemove
Section titled “indexesToRemove”…readonly int[]
Returns
Section titled “Returns”T[]
The removed elements. This will be an empty array if no elements were removed.
arrayRemoveInPlace()
Section titled “arrayRemoveInPlace()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”T[]
elementsToRemove
Section titled “elementsToRemove”…readonly T[]
Returns
Section titled “Returns”T[]
The removed elements. This will be an empty array if no elements were removed.
arrayToString()
Section titled “arrayToString()”arrayToString(
array):string
Defined in: packages/isaacscript-common/src/functions/array.ts:178
Parameters
Section titled “Parameters”readonly unknown[]
Returns
Section titled “Returns”string
combineArrays()
Section titled “combineArrays()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”arrays
Section titled “arrays”…readonly readonly T[][]
Returns
Section titled “Returns”T[]
copyArray()
Section titled “copyArray()”copyArray<
T>(oldArray,numElements?):T[]
Defined in: packages/isaacscript-common/src/functions/array.ts:215
Helper function to perform a shallow copy.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”oldArray
Section titled “oldArray”readonly T[]
The array to copy.
numElements?
Section titled “numElements?”int
Optional. If specified, will only copy the first N elements. By default, the entire array will be copied.
Returns
Section titled “Returns”T[]
emptyArray()
Section titled “emptyArray()”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.
Parameters
Section titled “Parameters”unknown[]
Returns
Section titled “Returns”void
filterMap()
Section titled “filterMap()”filterMap<
OldT,NewT>(array,func): readonlyNewT[]
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
Type Parameters
Section titled “Type Parameters”OldT
NewT
Parameters
Section titled “Parameters”readonly OldT[]
(element) => NewT | undefined
Returns
Section titled “Returns”readonly NewT[]
getArrayCombinations()
Section titled “getArrayCombinations()”getArrayCombinations<
T>(array,includeEmptyArray,min?,max?): readonly readonlyT[][]
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
includeEmptyArrayis 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
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”readonly T[]
The array to get the combinations of.
includeEmptyArray
Section titled “includeEmptyArray”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.
Returns
Section titled “Returns”readonly readonly T[][]
getArrayDuplicateElements()
Section titled “getArrayDuplicateElements()”getArrayDuplicateElements<
T>(array): readonlyT[]
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.
Type Parameters
Section titled “Type Parameters”T extends string | number
Parameters
Section titled “Parameters”readonly T[]
Returns
Section titled “Returns”readonly T[]
getArrayIndexes()
Section titled “getArrayIndexes()”getArrayIndexes(
array): readonlyint[]
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).
Parameters
Section titled “Parameters”readonly unknown[]
Returns
Section titled “Returns”readonly int[]
getHighestArrayElement()
Section titled “getHighestArrayElement()”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.
Parameters
Section titled “Parameters”readonly number[]
Returns
Section titled “Returns”number | undefined
getLowestArrayElement()
Section titled “getLowestArrayElement()”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.
Parameters
Section titled “Parameters”readonly number[]
Returns
Section titled “Returns”number | undefined
getRandomArrayElement()
Section titled “getRandomArrayElement()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”readonly T[]
The array to get an element from.
seedOrRNG
Section titled “seedOrRNG”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.
exceptions?
Section titled “exceptions?”readonly T[] = []
Optional. An array of elements to skip over if selected.
Returns
Section titled “Returns”T
getRandomArrayElementAndRemove()
Section titled “getRandomArrayElementAndRemove()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”T[]
The array to get an element from.
seedOrRNG
Section titled “seedOrRNG”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.
exceptions?
Section titled “exceptions?”readonly T[] = []
Optional. An array of elements to skip over if selected.
Returns
Section titled “Returns”T
getRandomArrayIndex()
Section titled “getRandomArrayIndex()”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.
Parameters
Section titled “Parameters”readonly unknown[]
The array to get the index from.
seedOrRNG
Section titled “seedOrRNG”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.
exceptions?
Section titled “exceptions?”readonly int[] = []
Optional. An array of indexes that will be skipped over when getting the random index. Default is an empty array.
Returns
Section titled “Returns”int
includes()
Section titled “includes()”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.
Type Parameters
Section titled “Type Parameters”T
TupleElement
Section titled “TupleElement”TupleElement
Parameters
Section titled “Parameters”readonly TupleElement[]
searchElement
Section titled “searchElement”WidenLiteral<T>
Returns
Section titled “Returns”searchElement is TupleElement
isArray()
Section titled “isArray()”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)
Parameters
Section titled “Parameters”object
Section titled “object”unknown
The object to analyze.
ensureContiguousValues?
Section titled “ensureContiguousValues?”boolean = true
Optional. Whether the Lua table has to have all contiguous keys in order to be considered an array. Default is true.
Returns
Section titled “Returns”object is unknown[]
isArrayContiguous()
Section titled “isArrayContiguous()”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.
Parameters
Section titled “Parameters”readonly int[]
Returns
Section titled “Returns”boolean
isArrayElementsUnique()
Section titled “isArrayElementsUnique()”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.
Parameters
Section titled “Parameters”readonly unknown[]
Returns
Section titled “Returns”boolean
isArrayInArray()
Section titled “isArrayInArray()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”arrayToMatch
Section titled “arrayToMatch”readonly T[]
parentArray
Section titled “parentArray”readonly readonly T[][]
Returns
Section titled “Returns”boolean
setAllArrayElements()
Section titled “setAllArrayElements()”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.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”T[]
T
Returns
Section titled “Returns”void
shuffleArray()
Section titled “shuffleArray()”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
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”originalArray
Section titled “originalArray”readonly T[]
The array to shuffle.
seedOrRNG
Section titled “seedOrRNG”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.
Returns
Section titled “Returns”T[]
shuffleArrayInPlace()
Section titled “shuffleArrayInPlace()”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
Parameters
Section titled “Parameters”unknown[]
The array to shuffle.
seedOrRNG
Section titled “seedOrRNG”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.
Returns
Section titled “Returns”void
sumArray()
Section titled “sumArray()”sumArray(
array):number
Defined in: packages/isaacscript-common/src/functions/array.ts:650
Helper function to sum every value in an array together.
Parameters
Section titled “Parameters”readonly number[]
Returns
Section titled “Returns”number
swapArrayElements()
Section titled “swapArrayElements()”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.)
Parameters
Section titled “Parameters”unknown[]
number
number
Returns
Section titled “Returns”void
