C# has a high performance array copying function to copy arrays in place:
Array.Copy(source, destination, length)
It's faster than doing it manually ie.:
for (var i = 0; i < length; i++)
destination[i] = source[i];
I am looking for an equivalent high performance copy function to copy arrays in place, for Int32Array and Float32Array in Javascript and can find no such function:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
The closest is "copyWithin" which only does an copy internally within an array.
Is there a built in high performance copy function for TypedArrays in place?
Plan B, is there a built in high performance clone function instead? (EDIT: looks like slice() is the answer to that)
You're looking for .set
which allows you to set the values of an array using an input array (or TypedArray), optionally starting at some offset on the destination array:
destination.set(source);
destination.set(source, offset);
Or, to set a limited amount of the input array:
destination.set(source.slice(limit), offset);
If you instead want to create a new TypedArray, you can simply use .slice
:
source.slice();