2012-12-06 61 views
5

Mã của tôi:Đảo ngược chuỗi mà không cần thay đổi thứ tự các từ trong một câu

Tôi đã thử các mã sau nhưng thứ tự của từ được thay đổi

var str = "Welcome to my Website !"; 

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

Nó được đưa ra kết quả như

! etisbeW ym ot emocleW

Nhưng tôi cần kết quả là

emocleW ot ym etisbeW !

Tức là, tôi không muốn thay đổi thứ tự các từ.

+0

Tôi không có kiến ​​thức về Java hoặc Javascript, vì vậy tôi không nên bình luận gì ở đây. Nhưng tôi có một lời khuyên cho bạn thay vì sử dụng 'gọi hàm sẵn có 'cố gắng làm tương tự trong' without' bằng cách sử dụng 'gọi hàm sẵn có', điều đó sẽ nâng cao tư duy logic của bạn. Anyhow Good Luck –

+0

Cảm ơn lời khuyên của bạn. – User1674987

Trả lời

17

Sử dụng này:

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

Ngắn và ngọt. Làm việc hoàn hảo. Cảm ơn. – User1674987

+0

+1 ấn tượng !!! –

+0

Tự hỏi, thực sự nó hoạt động như mong đợi trong một dòng tuyên bố như thế nào? – User1674987

11

Bạn có thể chia vào không gian, và sau đó sử dụng map để đảo ngược các chữ cái trong mỗi từ:

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

Lưu ý: chỉ trong các trình duyệt mới hơn. (Mà tôi không quan tâm, vít người dùng trình duyệt cũ anyway. Nhưng bạn có thể.) – Amadan

4

Để được hỗ trợ trình duyệt cũ hơn, bạn có thể thử này,

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

Làm việc hoàn hảo. Cảm ơn. – User1674987

Các vấn đề liên quan