2012-12-06 13 views
5

Mein Code:Strings ohne Änderung der Reihenfolge der Wörter in einem Satz

Ich habe versucht, den folgenden Code, aber die Reihenfolge der Wörter ändern

var str = "Welcome to my Website !"; 

alert(str.split("").reverse().join("")); 

Es gibt Ergebnis als

! etisbeW ym ot emocleW

Aber ich brauche das Ergebnis als

emocleW ot ym etisbeW !

Das heißt, ich möchte nicht die Reihenfolge der Wörter ändern.

+0

Ich habe keine Kenntnisse in Java oder Javascript, also sollte ich hier nichts kommentieren. Aber ich habe einen Rat für Sie anstelle von 'eingebauten Funktionsaufruf' versuchen, das gleiche zu tun, in 'ohne' 'eingebauten Funktionsaufruf', die Ihr logisches Denken verbessern wird. Anyway Good Luck –

+0

Vielen Dank für Ihren Rat. – User1674987

Antwort

17

verwenden:

var str = "Welcome to my Website !"; 
alert(str.split("").reverse().join("").split(" ").reverse().join(" ")); 
+0

Kurz und Süß. Perfekt arbeiten. Vielen Dank. – User1674987

+0

+1 Beeindruckend !!! –

+0

Fragen, wie funktioniert es eigentlich innerhalb einer Aussagezeile? – User1674987

11

Sie können auf die Felder aufgeteilt, und dann map verwenden, um die Buchstaben in jedem Wort zu umkehren:

alert(str.split(" ").map(function(x) { 
    return x.split("").reverse().join(""); 
}).join(" "));​ 
+2

Hinweis: nur in neueren Browsern. (Was mir egal ist, schraubt alte Browsernutzer sowieso. Aber Sie könnten.) – Amadan

4

Für ältere Browser unterstützen Sie diese versuchen kann,

var str = "Welcome to my Website !"; 

String.prototype.str_reverse= function(){ 
return this.split('').reverse().join(''); 
} 

var arr = str.split(" "); 
for(var i=0; i<arr.length; i++){ 
arr[i] = arr[i].str_reverse(); 
} 

alert(arr.join(" ")); //OUTPUT: emocleW ot ym etisbeW ! 
+0

Perfekt arbeiten. Vielen Dank. – User1674987

Verwandte Themen