【发布时间】:2016-06-04 11:06:46
【问题描述】:
C#有一个高性能的数组复制功能就地复制数组:
Array.Copy(source, destination, length)
这比手动操作要快,即:
for (var i = 0; i < length; i++)
destination[i] = source[i];
我正在寻找一个等效的高性能复制函数来复制数组就地,用于 Javascript 中的 Int32Array 和 Float32Array,但找不到这样的函数:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
最接近的是“copyWithin”,它只在数组内部进行复制。
TypedArrays 是否有内置的高性能复制功能就地?
Plan B,是否有内置的高性能克隆功能? (编辑:看起来 slice() 就是答案)
【问题讨论】:
-
你可以使用 Array.join()
-
@علاء الدين,
Array.join?甚至不返回一个数组。 -
@MikeMcCaughan 我不同意这个问题是重复的。这个问题首先询问如何将值复制到现有数组,而该问题询问如何创建新数组。 (这个问题允许创建一个新数组只是作为最后的手段。)在这种情况下,答案似乎是
.set;在这种情况下,答案是.slice。不过,我认为其他问题是一个有用的指针。 -
我们能否获得一个样本数据集来比较性能测试中的答案?
标签: javascript performance typedarray