Есть ли способ установить типизированный массив на ноль? - PullRequest
4 голосов
/ 09 июня 2011

Есть ли способ установить для каждого элемента массива с типом Javascript (то есть 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;
}

1 Ответ

0 голосов
/ 09 июня 2011

Как правило, ответ в этом случае будет нет. В JavaScript вы либо полностью объявляете вещи, когда создаете их с помощью буквального синтаксиса:

var Arr1 = [1,2,3,4,5];

Или вы присваиваете им значения (через циклы, когда это необходимо для последовательностей):

var Arr2 = Array(32);

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

JavaScript - это язык, который выигрывает от доступа к Arr2.length только один раз, когда это возможно, поэтому этот синтаксис должен принести выигрыш в производительности по сравнению с другими вариантами, но нет способа присвоить всем позициям в массиве конкретное значение, отличное от undefined Это то, что вы получаете, когда инициализируете размером.

...