有没有一种方法可以将类型化数组设置为零?

nib*_*bot 5 javascript typed-arrays

有没有办法将 Javascript类型数组(即 a Uint32Array)的每个元素设置为某个值(类似于 C 函数memset会做的事情)?

var foo = new Uint32Array(16384);
for (int i=0; i<foo.length; i++) {   // I want to do this without a for-loop
    foo[i] = 0xdeadbeef;
}
Run Code Online (Sandbox Code Playgroud)

g.d*_*d.c -3

一般来说,这种情况的答案是否定的。在 JavaScript 中,您可以在通过文字语法创建事物时完全声明它们:

var Arr1 = [1,2,3,4,5];
Run Code Online (Sandbox Code Playgroud)

或者为它们分配值(在序列需要时通过循环):

var Arr2 = Array(32);

for (var i = 0, j < Arr2.length; i < j; ++i) { Arr2[i] = 0xdeadbeef; }
Run Code Online (Sandbox Code Playgroud)

JavaScript 是一种在可能的情况下仅访问一次 Arr2.length 的语言,因此这种语法应该比其他变体具有更高的性能优势,但是没有办法将数组中的所有位置分配给除 undefined 之外的特定值,即当你用尺寸初始化时你会得到什么。

  • 类型化数组实际上初始化为零,而不是“未定义”。(事实上​​,他们不能存储“未定义”。) (4认同)