Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I want to reverse a string, then I want to reverse each word in it. I was able to reverse the string. But couldn't reverse words in it.

Given Str = "how are you" Expected Result = "you are how"

My code var my_str="how are you"; alert(my_str.split('').reverse().join(''));

Result I get: uoy era woh

How to get the final result??

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
115 views
Welcome To Ask or Share your Answers For Others

1 Answer

the other answers are entirely correct if your string has only 1 space between words.

if you have multiple spaces between words, then things are a bit different: to get just the words, in reverse order, rejoined by 1 space:

str.split(/s+/).reverse().join(" ")

to reverse the entire string, and still have the original whitespace:

str.split(//).reverse().join('')

the first one uses a regex, "/s+/", to match an entire run of spaces, instead of a single space. it rejoins the words with a single space.

the second one uses a regex, "//", to just split on the boundaries between words and non-words. since the runs of spaces will be preserved, it just rejoins with an empty string.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...