2017-04-01 3 views
0

Ich bekomme ein paar sehr seltsame Ergebnisse hier. Ich versuche, eine Zeichenfolge in eine ganze Zahl zu konvertieren. Betrachten Sie den folgenden Code unten.NaN erhalten, wenn versucht wird, String zu int zu werfen

  //Send back to client. 
      io.emit('returned message', { 
       'message': message, 
       'chatid': chatid, 
       'userid': userid 
      }); 
      console.log("Returning the data to chat " + chatid); 

Welche Daten zurück an den Client, das Konsolenprotokoll sieht wie folgt aus sendet:

Rückgabe der Daten an den Chat '5'

und im Client Ich habe

alert(typeof msg.chatid); 
alert(msg.chatid) 
var test = Number(msg.chatid); 
alert(typeof test) 
alert(test); 

Dies ergibt die folgenden Ergebnisse

String und '5' Anzahl und NaN

Bitte beachten Sie, ich habe versucht, Number() und parseInt()

jedoch in Jsfiddle zu Code versucht, es funktioniert gut . Ich habe keine Ahnung, warum ich NaN bekomme. Irgendwelche Ideen?

var num = '5'; 
 

 
alert(Number(num));

+0

Versuchen Sie bieten 'msg.chatid.length' und' msg.chatid.charCodeAt (0) Ausgabe von ' – 4castle

+1

Ich habe das Gefühl, dass der eigentliche Inhalt von chatid '' 5'' anstatt '5' ist, weshalb es nicht in eine Zahl geparst werden kann. Ansonsten sehe ich keinen Grund, warum Sie diese Anführungszeichen in Ihrer console.log erhalten würden. * Edit *: Bestätigt es mit dem nächsten Kommentar, Char-Code von ''' ist 39. – JCOC611

+1

@ 4castle 'msg.chatid.length' zurückgegeben 3 und' msg.chatid.charCodeAt (0) 'zurückgegeben 39 – Tony

Antwort

1

Sie haben einzelne quotationmarks um den "int" -Wert.

Rückgabe der Daten an den Chat '5'

Sieht aus wie es vor Ihrer Steckdose Übertragung entkommen ist?

+0

Sie haben Recht! Es war schon entkommen ... guter Fang! Ich setze dich in 2 Minuten als beantwortet, wenn ich darf. Vielen Dank! – Tony

+0

Gern geschehen. Und in Zukunft: wenn es heißt NaN, ist es NaN;) – Ben

-3

versuchen parseInt() verwenden.

var num = '5'; 
 

 
alert(parseInt(num));

+1

Wenn Sie meinen gesamten Beitrag lesen, werden Sie sehen, dass ich das schon versucht habe. Es ist sogar fett. – Tony

+0

Sind Sie sicher, dass der Wert von chatid immer eine Zahlenfolge ist? – four

0

Sie können die + schnelle Konvertit Nummer verwenden und Ausweich

var getNum = (n) => (+n) ? +n : -1 
 

 
var chatid = '5' 
 
var chatidinvalid = '5test' 
 
var chatidnan = NaN 
 

 
console.log("Returning the data to chat ", getNum(chatid)); 
 
console.log("Returning the data to chatidinvalid: ", getNum(chatidinvalid)); 
 
console.log("Returning the data to chatidinvalid: ", getNum(chatidnan));

Verwandte Themen