Array-Erstellung und die Map-Methode in JavaScript verstehen
Wenn Sie ein Array mit dem neuen Array(count)-Ausdruck erstellen, erstellen Sie im Wesentlichen ein spärliches Array. Sparse-Arrays enthalten „Löcher“ oder undefinierte Elemente an Indizes, denen keine expliziten Werte zugewiesen wurden. Dieses Verhalten unterscheidet sich von Arrays, die mit der Array-Literal-Syntax ([1, 2, 3]) erstellt wurden und für alle Elemente definierte Werte haben.
Die Map-Methode hingegen versucht, eine Transformationsfunktion anzuwenden zu jedem Element eines Arrays. Bei Anwendung auf ein Array mit geringer Dichte überspringt die Map-Methode jedoch die undefinierten Elemente und transformiert nur die definierten Elemente. Dies erklärt das scheinbar unerwartete Verhalten, das im angegebenen Codeausschnitt beobachtet wird.
Beheben des Problems
Um dieses Problem zu beheben, kann man die Sparsität des Arrays beheben, bevor man das anwendet Kartenmethode. Mit der Methode Array.prototype.fill() kann allen Elementen im Array ein Standardwert (z. B. undefiniert) zugewiesen werden. Alternativ kann die Map-Methode mit einer bedingten Anweisung kombiniert werden, um nur definierte Elemente zu transformieren:
var x = new Array(3).fill(undefined); var y = x.map(function(e) { return e !== undefined ? 0 : 1; }); console.log(y); // [1, 1, 1]
Das obige ist der detaillierte Inhalt vonWarum überspringt die „map'-Methode von JavaScript undefinierte Elemente in Sparse-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!