Heim > Web-Frontend > js-Tutorial > Warum führt „Array.map()' mit „parseInt()' zu unerwarteten Ergebnissen in JavaScript?

Warum führt „Array.map()' mit „parseInt()' zu unerwarteten Ergebnissen in JavaScript?

Susan Sarandon
Freigeben: 2024-12-17 11:10:27
Original
149 Leute haben es durchsucht

Why Does `Array.map()` with `parseInt()` Produce Unexpected Results in JavaScript?

Zahlen in Array.map() mit parseInt analysieren

In Javascript wendet die Funktion Array.map() auf jede eine Rückruffunktion an Element eines Arrays. Allerdings kann die Funktion parseInt() in diesem Zusammenhang zu unerwarteten Ergebnissen führen.

Im bereitgestellten Beispiel:

['1','2','3'].map(parseInt);
Nach dem Login kopieren

parseInt() ergibt [1, NaN, NaN] statt der erwarteten [1, 2, 3]. Dieses Verhalten entsteht, weil parseInt() zwei Argumente benötigt: die zu analysierende Zeichenfolge und eine optionale Basis (Basis).

Die Rückruffunktion Array.map() stellt drei Parameter bereit: den Elementwert, seinen Index und den Array selbst. Wenn parseInt() ohne Angabe einer Basis verwendet wird, wird der zweite Parameter (der Index) als Basis verwendet.

Für ['1','2','3'] die von parseInt verwendeten Basiswerte () werden zu 0, 1 und 2. Da Basis 1 ungültig ist und 3 nicht binär darstellbar ist (Basis 2), schlägt die Analyse fehl, was dazu führt NaN.

Um dieses Verhalten zu korrigieren, geben Sie eine explizite Basis für parseInt() innerhalb einer Wrapper-Funktion an:

['1','2','3'].map(function(num) { return parseInt(num, 10); });
Nach dem Login kopieren

Alternativ können Sie die ES2015-Syntax verwenden:

['1','2','3'].map(num => parseInt(num, 10));
Nach dem Login kopieren

Durch die Angabe einer Basis von 10 stellen wir sicher, dass parseInt() die Zeichenfolgen korrekt analysiert ganze Zahlen.

Das obige ist der detaillierte Inhalt vonWarum führt „Array.map()' mit „parseInt()' zu unerwarteten Ergebnissen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage