2016-04-22 2 views
1

Ich habe eine Variable someText wo Nummer gespeichert ist. Abhängig von der letzten Nummer muss ich einen anderen Text hinzufügen. So konvertiere ich someText in anstrengend, erhalten Zeichenfolge Länge in someTextLng und subtrahieren für das letzte Symbol someTextLng. document.write(lastChar + "<br/>"); in meinem Beispiel gibt 7 - alles ok. Fortsetzung mit if und Überraschung - lastChar = 1. Aber warum? Wo ist mein Fehler?Falscher Wert beim Abrufen des letzten Symbols in der Zeichenfolge in Javascript

<script type="text/javascript"> 
 
var someText = 312347; 
 
someText= someText.toString(); 
 
someTextLng = someText.length-1; 
 
var lastChar = someText.substr(someTextLng, 1); 
 
document.write(lastChar + "<br/>"); 
 
if (lastChar = "1") { 
 
document.write(lastChar+"&nbsp;Day") 
 
} 
 
else if (lastChar = "2") { 
 
document.write(lastChar+"&nbsp;DayZ") 
 
} 
 
else { 
 
alert ("Wuza"); 
 
} 
 
</script>

+1

if (LastChar = "1") wird immer wahr sein. Verwenden Sie (lastChar === "1"), um sich Ihrer Vergleiche sicher zu sein. –

Antwort

1

Sie müssen == verwenden, um den Wert von lastChar anzupassen. Um die LastChar können Sie Erinnerung Operator:

var lastChar = someText % 10; 

if (lastChar == 1) { 
    document.write(lastChar+"&nbsp;Day") 
} 
else if (lastChar == 2) { 
    document.write(lastChar+"&nbsp;DayZ") 
} 
else { 
    alert ("Wuza"); 
} 
+0

OMG, so ein dummer Fehler. Habe es vergessen - ich habe JS schon lange nicht mehr benutzt. Vielen Dank für die Erklärung. Ich werde Ihre Antwort in 9 Minuten akzeptieren. – Cove

+0

Kommt mit dem Besten der Menge manchmal vor! – AKS

1
var someText = 312347; 
someText= someText.toString(); 
someTextLng = someText.length-1; 
var lastChar = someText.substr(someTextLng, 1); 
console.log(lastChar + "<br/>"); 
if (lastChar == "1") { 
    console.log(lastChar+"&nbsp;Day") 
} 
else if (lastChar == "2") { 
    console.log(lastChar+"&nbsp;DayZ") 
} 
else { 
    alert ("Wuza"); 
} 
2

Warum nicht die reminder operator verwenden % für die letzte Stelle?

var last = number % 10; 

und später

if (last === 1) { 
    // do something 
} 
+0

Tbh Ich habe meine Aufgabe endlich mit dem Schalter gelöst. Es gibt ein bisschen mehr Bedingungen als ungerade und gerade Zahlen - Wortüberlieferung der russischen Sprache roks. – Cove

1

Wenn Sie etwas überprüfen, die Sie gleich etwas anderes ist es === nicht =

Ihr Code wie die

if (lastChar === "1") { 
    document.write(lastChar+"&nbsp;Day") 
} 
else if (lastChar === "2") { 
    document.write(lastChar+"&nbsp;DayZ") 
} 
else { 
    alert ("Wuza"); 
} 

sein sollte:)

1

Versuchen Sie, diese

<script type="text/javascript"> 
var lastChar = (312347 % 10).toString; 
document.write(lastChar + "<br/>"); 
if (lastChar === "1") { 
    document.write(lastChar+"&nbsp;Day") 
} else if (lastChar === "2") { 
    document.write(lastChar+"&nbsp;DayZ") 
} else { 
    alert ("Wuza"); 
} 
</script> 
Verwandte Themen