反向字符串而不改变句子中单词的顺序

时间:2012-12-06 05:20:22

标签: javascript

我的代码:

我尝试了以下代码,但单词的顺序正在改变

var str = "Welcome to my Website !";

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

正在给出结果

! etisbeW ym ot emocleW

但我需要结果

emocleW ot ym etisbeW !

也就是说,我不想改变单词的顺序。

4 个答案:

答案 0 :(得分:18)

使用此:

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

答案 1 :(得分:11)

您可以拆分空格,然后使用map翻转每个单词中的字母:

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

答案 2 :(得分:4)

对于较旧的浏览器支持,您可以尝试使用

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 !

答案 3 :(得分:0)

我刚刚使用功能性方法和打字稿解决了这个问题:

const  aString = "Our life always expresses the result of our dominant thoughts.";

function reverseString (str: string) :string {
  return  str.split('').reverse().join('')
}

function reverseWords(str:string) :string {
  return str.split(" ").map(reverseString).join(" ")
}

console.log(reverseWords(aString))
// ruO efil syawla sesserpxe eht tluser fo ruo tnanimod .sthguoht
相关问题