在Javascript中将数组复制到较大数组的中间

YAH*_*ves 6 javascript arrays

我在这里搜索了答案,但我只能找到其他语言的问题.

所以我有2个Uint8类型的数组.

var arr1 = [0,0,0];
var arr2 = [0,1,2,3,4,5,6,7,8,9];
Run Code Online (Sandbox Code Playgroud)

我想从第4个位置开始用arr1替换arr2的内容.所以arr2将是:

arr2 = [0,1,2,0,0,0,6,7,8,9];
Run Code Online (Sandbox Code Playgroud)

如果我没有尝试在数组中间执行此操作,我可以使用如下设置:

arr2.set(arr1);
Run Code Online (Sandbox Code Playgroud)

我会得到:

arr2 = [0,0,0,4,5,6,7,8,9];
Run Code Online (Sandbox Code Playgroud)

我知道我可以循环遍历arr2并单独复制值,但性能方面这与set相比非常慢(并且性能对我很重要,因为它每秒24次复制整个canvas画布img数据).

是否有任何函数可以复制到数组的中间,但具有set的性能?

Ori*_*ori 4

使用typedarray.set(array[, offset])偏移量。

偏移量可选

开始从源数组写入值的目标数组的偏移量。如果省略此值,则假定为 0(即源数组将覆盖目标数组中从索引 0 开始的值)。

const arr1 = new Uint8Array([0,0,0]);
const arr2 = new Uint8Array([0,1,2,3,4,5,6,7,8,9]);

arr2.set(arr1, 4);

console.log(arr2);
Run Code Online (Sandbox Code Playgroud)