Warum passiert das?parseInt funktioniert nicht korrekt, wenn es als Argument für einen Kartenaufruf übergeben wird
var numbers = [ '1', '2', '3', '4' ];
var intNumbers = numbers.map(parseInt); // intNumbers = [1, NaN, NaN, NaN]
var fltNumbers = numbers.map(parseFloat); // fltNumbers = [1, 2, 3, 4, 5 ]
Aber Array.prototype.map.call(numbers, parseInt);
kehrt [ 1, 2, 3, 4];
. Ich verwende diesen Code in Google Chrome 26.0.1410.65.
erklärt bei https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map –
auch einfache Lösung: 'numbers.map (function (i) {ParseInt zurückkehren (i)}) ' – Jonah
Vergessen Sie auch nicht, den radix-Parameter immer an' parseInt() 'zu übergeben und setzen Sie ihn auf '10', wenn Sie die Basis 10 verwenden, weil Sie sonst wahrscheinlich sind seltsame und sehr schwer zu debuggende Probleme später zu begegnen. – rid