填充javascript类型数组的最佳方法?

时间:2014-02-25 14:53:04

标签: javascript literals typed-arrays

使用文字数据填充javascript类型数组的最佳方法是什么?

最近,我一直在使用javascript类型数组进行一些数学工作。特别是,我使用了大量的Float32Array对象。

我经常需要手动填充其值。使用常规数组时,可以使用以下文字语法:var a = [0,1,2];但是似乎没有相同的方法来填充类型化数组,所以我发现我必须使用大量单独的语句来完成它;

var a = new Float32Array(3);
a[0] = 0;
a[1] = 1;
a[2] = 2;

如果超过4个值,这会非常烦人。从脚本大小和javascript执行来看,它似乎也很浪费,因为它必须解释所有这些单独的语句。

我使用的另一种方法是创建一个setter函数:

var populateArray(a,vals) {
    var N = vals.length;
    for (var i=0; i<N; i++) {a[i]=vals[i];}
};
var a = new Float32Array(3);
populateArray(a,[0,1,2]);

但这似乎也很浪费。我必须先创建一个与输入数组一样大的常规数组,然后输入populateArray函数,然后进行迭代。

所以......问题是:是否有更直接有效的方法用文字数据填充打字数组?

1 个答案:

答案 0 :(得分:5)

为什么不简单地执行new Float32Array([1,2,3]);

查看constructor overloads

  

Float32Array Float32Array(     无符号长度   );

     

Float32Array Float32Array(     TypedArray数组   );

     

Float32Array Float32Array(     序列数组   );

     

Float32Array Float32Array(     ArrayBuffer缓冲区,     可选的unsigned long byteOffset,     可选的无符号长度   );