反向字符串[JS]

时间:2018-03-14 13:58:14

标签: javascript arrays string reverse

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

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

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

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

或:

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

我今天花了几个小时,因为我正在学习,任何帮助我都会得到满满的!谢谢!

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

首先,按空格分割然后反转每个单词

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

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

答案 2 :(得分:0)

在每个空格word.split(' ')

分割句子

然后循环浏览每个单词并反转它们的顺序x.split('').reverse().join('');(你已经想到的东西:D) 我使用了.map() - 比for循环更简洁 - 随时可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

了解有关.map()方法的更多信息

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



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 );