在不改变词序的情况下反转字符串中的每个词

Reverse each word in string without changing word order

环顾四周,找不到这个问题的答案。

我试图在不改变单词顺序的情况下反转字符串中的每个单词...

这是我的代码:

  function wordsReverser(string){
    return string.split('').reverse().join('');
  }
  console.log(wordsReverser('New string, same results.'));

我得到的结果是这样的: ".stluser emas ,gnirts weN​​"

我正在寻找这个: "weN gnirts... "

这是一个jsbin

更新:编辑了答案以反映更新后的问题

function wordsReverser(string){
    return string.split(' ').map(function(word) { 
        return word.split('').reverse().join(''); 
    }).join(' ');
}
alert(wordsReverser('New string, same results.'));
// weN ,gnirts emas .stluser

如果您想保留标点符号:

function wordsReverser(string){
    return string.split(' ').map(function(word) { 
        var rev = word.split('').reverse().join('');
        if (['.',','].indexOf(rev[0]) > -1) {
          rev = rev.slice(1) + rev[0];
        }
        return rev;
    }).join(' ');
}
alert(wordsReverser('New string, same results.'));
// weN gnirts, emas stluser.

这是一个 JSFiddle,其中包含您正在寻找的解决方案https://jsfiddle.net/e109c4pc/

function wordsReverser(string){
    var arr = string.split("");
    var output = [];
    for(var i = arr.length - 1;  i >= 0; i--){
        output.push(arr[i]);
    }
  return output.join("");
}

尝试这样的事情。

function wordsReverser(string){
return string.split("").reverse().join("").split(" ").reverse().join(" ")  
}

console.log(wordsReverser('New string, same results.'));

您需要将文本拆分成单独的单词,然后单独反转每个单词。

function wordsReverser(string){
   var words = string.split(' ');
   var result = [];
   for(var i = 0; i < words.length; i ++){
     result.push(words[i].split('').reverse().join(''));
   }  
   return result.join(' ');
}

console.log(wordsReverser('New string, same results.'));