Javascript如何反转空格分隔的字符串

时间:2016-01-12 15:45:59

标签: javascript

下面的代码应该反转句子中的所有字符,但是无法执行此操作。这对我来说是孩子的游戏,但此刻它并没有编译。有人能解决这个问题吗?

让我们说:

  

“聪明的极客是快速编码员”。

以下代码应按如下方式反转上述字符串:

  

“trams skeeg era tsaf sredoc”

function solution(S){   
    var result = false;

    if(S.length === 1){
        result = S;
    }

    if(S.length > 1 && S.length < 100){
        var wordsArray = S.split(" "),
            wordsCount = wordsAray.length,
            reverseWordsString = '';

        for(var i = 0; i< wordsCount; i++){
            if(i > 0){
               reverseWordsString = reverseWordsString + ' ';
            }
            reverseWordsString = reverseWordsString + wordsAray[i].split("").reverse().join("");
        }
        result = reverseWordsString;
    }

    return result;
}

2 个答案:

答案 0 :(得分:2)

这可以为您提供您正在寻找的结果。

function reverseWords(s) {
  return s.replace(/[a-z]+/ig, function(w){return w.split('').reverse().join('')});
}

答案 1 :(得分:0)

function reverseWords(s) {
    var arr = s.split(" ");
    s = '';
    for(i = 0; i < arr.length; i++) {
        s += arr[i].split('').reverse().join('').toLowerCase() + " ";
    }
    return s;
}

这不适合你吗?基本上它只是将字符串转换为数组,通过在空间上拆分它。然后它遍历数组,将每个字符串反转添加到一个新字符串,然后将其转换为小写。为了加快速度(你没有注意到),你可以在循环后调用newStr.toLowerCase(),这样它就可以一次而不是每次都这样做。