Baseline Widely available
Die TypedArray.from()
statische Methode erstellt ein neues getyptes Array aus einem array-ähnlichen oder iterierbaren Objekt. Diese Methode ist fast identisch mit Array.from()
.
const uint16 = Int16Array.from("12345");
console.log(uint16);
// Expected output: Int16Array [1, 2, 3, 4, 5]
Syntax Parameter
arrayLike
Ein iterierbares oder array-ähnliches Objekt, das in ein getyptes Array umgewandelt werden soll.
mapFn
Optional
Eine Funktion, die für jedes Element des getypten Arrays aufgerufen wird. Wenn bereitgestellt, wird jeder Wert, der zum Array hinzugefügt werden soll, zuerst durch diese Funktion gefiltert, und der Rückgabewert von mapFn
wird stattdessen zum getypten Array hinzugefügt. Die Funktion wird mit den folgenden Argumenten aufgerufen:
element
Das aktuelle Element, das im getypten Array verarbeitet wird.
index
Der Index des aktuellen Elements, das im getypten Array verarbeitet wird.
thisArg
Optional
Wert, der als this
beim Ausführen von mapFn
verwendet wird.
Eine neue TypedArray
Instanz.
Siehe Array.from()
für mehr Details.
Es gibt einige subtile Unterschiede zwischen Array.from()
und TypedArray.from()
(Hinweis: Der this
-Wert, der im Folgenden erwähnt wird, ist der this
-Wert, mit dem TypedArray.from()
aufgerufen wurde, nicht das thisArg
-Argument, das verwendet wird, um mapFn
zu rufen):
this
-Wert von TypedArray.from()
kein Konstruktor ist, wirft TypedArray.from()
einen TypeError
, während Array.from()
standardmäÃig ein neues Array
erstellt.this
konstruierte Objekt muss eine TypedArray
Instanz sein, während Array.from()
erlaubt, dass sein this
-Wert zu einem beliebigen Objekt konstruiert wird.source
-Parameter ein Iterator ist, sammelt TypedArray.from()
zuerst alle Werte aus dem Iterator, erstellt dann eine Instanz von this
unter Verwendung der Anzahl, und setzt schlieÃlich die Werte auf der Instanz. Array.from()
setzt jeden Wert, sobald er vom Iterator empfangen wird, und setzt dann seine length
am Ende.TypedArray.from()
verwendet [[Set]]
, während Array.from()
[[DefineOwnProperty]]
verwendet. Daher ruft es beim Arbeiten mit Proxy
-Objekten handler.set()
auf, um neue Elemente zu erstellen, anstatt handler.defineProperty()
.Array.from()
ein array-ähnliches Objekt erhält, das kein Iterator ist, respektiert es Löcher. TypedArray.from()
sorgt dafür, dass das Ergebnis dicht ist.const s = new Set([1, 2, 3]);
Uint8Array.from(s);
// Uint8Array [ 1, 2, 3 ]
Aus einem String
Int16Array.from("123");
// Int16Array [ 1, 2, 3 ]
Verwendung mit Pfeilfunktion und Karte
Verwendung einer Pfeilfunktion als Abbildungsfunktion, um die Elemente zu manipulieren
Float32Array.from([1, 2, 3], (x) => x + x);
// Float32Array [ 2, 4, 6 ]
Eine Zahlenfolge erzeugen
Uint8Array.from({ length: 5 }, (v, k) => k);
// Uint8Array [ 0, 1, 2, 3, 4 ]
Aufrufen von from() auf Nicht-TypedArray-Konstruktoren
Der this
-Wert von from()
muss ein Konstruktor sein, der eine TypedArray
Instanz zurückgibt.
function NotArray(len) {
console.log("NotArray called with length", len);
}
Int8Array.from.call({}, []); // TypeError: #<Object> is not a constructor
Int8Array.from.call(NotArray, []);
// NotArray called with length 0
// TypeError: Method %TypedArray%.from called on incompatible receiver #<NotArray>
function NotArray2(len) {
console.log("NotArray2 called with length", len);
return new Uint8Array(len);
}
console.log(Int8Array.from.call(NotArray2, [1, 2, 3]));
// NotArray2 called with length 3
// Uint8Array(3) [ 1, 2, 3 ]
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4