环顾四周,无法找到答案。
我试图反转字符串中的每个单词而不改变单词的顺序......
这是我的代码:
function wordsReverser(string){
return string.split('').reverse().join('');
}
console.log(wordsReverser('New string, same results.'));
我得到的结果是: " .stluser emas,gnirts weN"
我正在寻找: " wen gnirts ..."
这是jsbin
答案 0 :(得分:4)
Try something like this.
function wordsReverser(string){
return string.split("").reverse().join("").split(" ").reverse().join(" ")
}
console.log(wordsReverser('New string, same results.'));
答案 1 :(得分:2)
这是一个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("");
}
答案 2 :(得分:0)
更新:编辑了答案以反映更新后的问题
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.
答案 3 :(得分:0)
您需要将文本拆分为单独的单词,然后单独翻转每个单词。
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.'));
&#13;