首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将TypedArray复制到另一个TypedArray中?

如何将TypedArray复制到另一个TypedArray中?
EN

Stack Overflow用户
提问于 2016-02-22 20:49:20
回答 3查看 12.9K关注 0票数 25

C#具有高性能的数组复制功能来复制数组。

代码语言:javascript
代码运行次数:0
运行
复制
Array.Copy(source, destination, length)

这比手工操作要快。

代码语言:javascript
代码运行次数:0
运行
复制
for (var i = 0; i < length; i++)
    destination[i] = source[i];

我正在寻找一个等效的高性能复制函数来复制数组,用于Int32ArrayFloat32Array在JavaScript中,并且找不到这样的函数:

对象/TypedArray

最近的是copyWithin,它只在数组内部执行副本。

是否有内置的高性能复制函数用于TypedArray

方案B,是否有内置的高性能克隆功能?(编辑:看起来slice()是答案)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-22 21:08:51

您正在寻找.set,它允许您使用输入数组(或TypedArray)设置数组的值,可以选择从目标数组的某个偏移量开始:

代码语言:javascript
代码运行次数:0
运行
复制
destination.set(source);
destination.set(source, offset);

或者,要设置输入数组的有限数量:

代码语言:javascript
代码运行次数:0
运行
复制
destination.set(source.slice(limit), offset);

如果您想要创建一个新的TypedArray,可以简单地使用.slice

代码语言:javascript
代码运行次数:0
运行
复制
source.slice();
票数 40
EN

Stack Overflow用户

发布于 2016-02-22 20:52:31

您可以使用slice(0);克隆数组。

代码语言:javascript
代码运行次数:0
运行
复制
var clone = myArray.slice(0);

您可以将其作为一种本地方法:

代码语言:javascript
代码运行次数:0
运行
复制
Array.prototype.clone = function() {
    return this.slice(0);
};

性能链接与循环的比较

票数 9
EN

Stack Overflow用户

发布于 2016-03-25 15:23:44

克隆到已存在的类型:

代码语言:javascript
代码运行次数:0
运行
复制
destination.set(source);
destination.set(source, offset);

克隆到一个新的类型化示例:(这是最快的!)

代码语言:javascript
代码运行次数:0
运行
复制
var source = new Uint8Array([1,2,3]);
var cloned = new Uint8Array(source);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35563529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档