Uint32Array (Puffer, ByteOffset, Länge) funktioniert nicht wie erwartet

8

Laut MSDN kann ich Uint32Array auf drei Arten erstellen:

  1. new Uint32Array( length );
  2. new Uint32Array( array );
  3. new Uint32Array( buffer, byteOffset, length );

Erste und zweite Methode funktionieren gut, aber die dritte funktionierte nicht für mich. Was ist falsch in diesem Code?

%Vor%

Das funktioniert gut, aber natürlich byteOffset = 0 .

%Vor%     
Demion 07.12.2011, 17:37
quelle

1 Antwort

6

Die Dokumentation scheint hier falsch zu sein, da length keine Anzahl von Bytes ist, sondern die Anzahl der 32-Bit-Ganzzahlen, die Uint32Array enthält.

Ausstellung A

Ändern des Codes in var uint32s = new Uint32Array(buffer, 4, 1); funktioniert.

Anlage B

Die Dokumentation für Uint32Array in MDN besagt, dass length eine Anzahl von Elementen und nicht Bytes darstellt.

Ausstellung C

Es macht nicht wirklich Sinn, dass der Konstruktor eine Länge in Bytes akzeptiert. Was passiert, wenn length kein Vielfaches von 4 ist?

    
Jon 07.12.2011, 17:50
quelle

Tags und Links