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

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

var arr1 = [0,0,0];
var arr2 = [0,1,2,3,4,5,6,7,8,9];

我想从第4个位置开始用arr1替换arr2的内容。这样arr2将是:
arr2 = [0,1,2,0,0,0,6,7,8,9];

如果我不打算在数组中间执行此操作,则可以使用set like this:
arr2.set(arr1);

我会得到:
arr2 = [0,0,0,4,5,6,7,8,9];

我知道我可以循环遍历arr2并单独复制值,但是从性能 Angular 来看,这与设置相比非常慢(性能对我而言很重要,因为它每秒复制24个完整的 Canvas img数据数组)。

有没有可以复制到数组中间但具有set性能的函数?

最佳答案

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



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);

关于javascript - 在Javascript中将数组复制到更大数组的中间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48046363/

10-10 19:25