2016-05-15 12 views
0

Ich lerne Javascript bei Codeacademy und ich versuche Stringlänge aus einer Eingabeaufforderung zu berechnen und eine benutzerdefinierte Warnung für jede Antwort anzuzeigen. Hier ist, was ich bisher habe:Javascript Prompt Um die Länge der Zeichenfolge zu berechnen

var answer = prompt('What is your surname?').length; 

var responses = { 
answer > 5: 'Your name has fewer than five characters', 
answer < 5: 'Your name has more than five characters', 
defaultResponse: 'You didn\'t answer?' 
} 

alert(responses[answer] || responses.defaultResponse); 

sollte ich irgendwo hier eine if-Anweisung platzieren. Oder wäre ein Switch besser hier?

Antwort

0

Hier ist eine saubere Art und Weise, es zu tun:

var answer = prompt('What is your surname?'); 
var response; 

if(answer.length == 0){ 
    response = 'You didn\'t answer?'; 
} else if(answer.length > 5){ 
    response = 'Your name has fewer than five characters'; 
} else if (answer.length < 5) { 
    response = 'Your name has more than five characters'; 
} 

alert(response); 

Für so etwas würde ich nicht mit einem Schalter stören.

+2

if (answer.length> 5) {response = „Ihr Name mehr als 5 Zeichen hat“; – Popatop15

+0

Danke für den Fang! Bearbeitet :) –

+1

auch die var response = 'Sie haben nicht geantwortet?' wird nie aufgerufen, denn wenn sie keinen Namen eingeben, wird dies als Zeichenfolge mit der Länge 0 betrachtet. Wenn Sie das Skript abbrechen, wird das Skript beendet. – Popatop15

0

Wenn Sie ein Objekt verwenden möchten, für die Antwort sehen Sie es tun können wie diese

var answer = prompt('What is your surname?').length; 

var responses = { 
more: 'Your name has more than five characters', 
less: 'Your name has fewer than five characters', 
default: 'You didn\'t answer?' 
} 

alert(answer == 0 && responses.default || answer < 5 && responses.less || answer > 5 && responses.more); 
+0

Danke. Ich hatte gehofft, eine Lösung mit einem Objekt zu sehen. – theAussieGuy

Verwandte Themen