-2

有可能吗?如果可以,怎么做?

我想将多个 float32Arrays 加到一个 float32array 中。

我知道这听起来是一个愚蠢的问题,但事实证明手动执行此操作需要一些时间。

有没有可能让它比这更快?

recBuffers 是一个 float32Array 缓冲区数组,长度约为 6594048

function mergeBuffers(recBuffers, recLength){

  var result = new Float32Array(recLength);
  var offset = 0

  for (var i=0; i<recBuffers.length; i++){  
      for (var j=0; j<recBuffers[i].length; j++){
        result[j] += recBuffers[i][j];
      } 
  }
  return result;
}
4

1 回答 1

3

来自MDN

建立后,您可以使用对象的方法或使用标准数组索引语法(即使用括号表示法)引用数组中的元素。

给定两个 float32Arraysab,您可以这样做:

var c = new Float32Array(Math.min(a.length, b.length));
for (var i=c.length; i-->0;) c[i] = a[i]+b[i];
于 2012-12-04T19:57:13.540 回答