Der Zweck dieser Funktion besteht darin, die Leerstellen einer gegebenen Zeichenfolge zu entfernen, sie dann in eine Zahl umzuwandeln und schließlich jedes Zeichen der Zahl in ein leeres Array zu schieben "24532", sollte das folgende [2,4,5,3,2] in das Array schieben. Wenn ich jedoch mein Ausgabe-Array am Ende der Funktion trete - erhalte ich NaN-Werte im Ausgabe-Array. Jeder Schritt in der Funktion macht Sinn für mich, aber ich bin mir nicht sicher, wo mein Fehler liegt. Jede Hilfe wird geschätzt!Kann NaN-Werte nicht aus meiner Funktion in JS entfernen
function convert(numbers){
var notString = parseInt(numbers.replace(/\s+/g, ''), 10),
sNumber = notString.toString(),
output =[];
console.log(sNumber);
for(var i = 0; i < sNumber.length; i+=1) {
output.push(+sNumber.charAt[i]);
}
console.log(output);
}
convert("1 2 2 2 2");
Das Problem ist, dass Sie '[]' 'nach charAt' statt'() '. Also sollte es '+ sNumber.charAt (i)' sein. Jetzt ruft es die Funktion auf anstatt auf eine Eigenschaft zuzugreifen. –
Der Ausdruck "sNumber.charAt [i]" ist nicht definiert. (Javascript stört nicht, dass Sie versuchen, eine Funktion zu dereferenzieren). Der unäre Plus-Operator versucht, undefined in eine Zahl zu konvertieren und NaN zu erzeugen und dieses in Ihr Array zu schieben. ('push (+ sNumber.charAt [i]) ~~> drücke (+ undefiniert) ~~> drücke (NaN)'). Ihr Beispiel endet mit einem Array von 5 x NaN – Tibrogargan