18 lines
537 B
TypeScript
18 lines
537 B
TypeScript
/**
|
|
* Concatenates two arrays faster than the array spread operator.
|
|
*/
|
|
export const concatArrays = <T, U>(
|
|
array1: readonly T[],
|
|
array2: readonly U[],
|
|
): readonly (T | U)[] => {
|
|
// Pre-allocate for better V8 optimization
|
|
const combinedArray: (T | U)[] = new Array(array1.length + array2.length)
|
|
for (let i = 0; i < array1.length; i++) {
|
|
combinedArray[i] = array1[i]!
|
|
}
|
|
for (let i = 0; i < array2.length; i++) {
|
|
combinedArray[array1.length + i] = array2[i]!
|
|
}
|
|
return combinedArray
|
|
}
|