反转字符串 [JS]

reverse string [JS]

别担心,我知道如何反转字符串(一个单词字符串:))

> function reverse(s){
>     return s.split("").reverse().join(""); }

如何以这种方式反转字符串:

"Dady come home" -> "ydaD emoc emoh"

或:

('double  spaced  words') === 'elbuod  decaps  sdrow');

我今天花了这几个小时,因为我正在学习,如有任何帮助,我将不胜感激!谢谢!

并且请不要用代码写完整的回复。 :)我只是问一些提示。

使用捕获多个空白字符的正则表达式拆分字符串,例如 /(\s+)/。您将拥有一个单词数组,您可以使用 Array.prototype.map(或循环)单独反转每个单词,然后使用 Array.prototype.join 获得最终结果。

首先,按space拆分,然后将每个单词反转

 string.split` `.map(a=>[...a].reverse().join``).join` `

var string = "Dady come home";
console.log(string.split` `.map(a=>[...a].reverse().join``).join` `)

在每个 space word.split(' ')

处拆分句子

然后循环遍历每个单独的单词并颠倒它们的顺序 x.split('').reverse().join('');(你已经知道了 :D) 为此,我使用了 .map()——只是比 for 循环更简洁——欢迎随时了解有关 .map() 方法的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

一旦所有单词都被反转,将数组重新拼接成一个字符串 strArray.join(' '); 但使用空 space 重新连接它们。

var str1 = "Hello";
var str2 = "Daddy come home";
var str3 = "double  spaced  words";

function reverseWords( word ){

  let output = '';
  
  // split the words based on spaces
  let subStrArray = word.split(' ');
  
  // reverse each word
  let updatedStrArray = subStrArray.map( (x) => {
    let result = '';
    if( x ){
      result = x.split('').reverse().join('');
    }
    return result;
  });
  
  // stitch back together as a string
  output = updatedStrArray.join(' ');
  
  console.log( output );
  
  return output;

}

let rev1 = reverseWords( str1 );
let rev2 = reverseWords( str2 );
let rev3 = reverseWords( str3 );

// making sure things can go forwards and backwards ...
reverseWords( rev1 );
reverseWords( rev2 );
reverseWords( rev3 );