如何使用 javascript 逐字反转字符串?

How to reverse word by word in a string using javascript?

我正在编写字符串中逐字反向的逻辑 javascript。

但我认为我的代码比较冗长,所以我正在寻找好的答案。

Ex :- I/p- Hi how are you // o/p- iH woh era uoy

function ReverseString(val) {
  var op = "",
    iCount = -1;
  for (let i = 0; i <= val.length; i++) {
    if (val[i] != " " && i != val.length)
      continue;
    for (let j = i - 1; j > iCount; j--)
      op += val[j];
    if (i != val.length)
      op += " ";
    iCount = i;
  }
  return op;
}

console.log(ReverseString("Hi how are you"));

一种方法是用空格将字符串拆分为一个单词数组,然后使用 map() 反转数组中的这些单词,如下所示:

function ReverseString(val) {
  return val.split(/\s/g).map(w => w.split('').reverse().join('')).join(' ');
}
console.log(ReverseString("Hi how are you"));

一种方法是使用 split()

将数组中的单词分开

然后对于每个单词,拆分字母并使用反向函数重新连接它们。

至少,重新加入这个词

const str = "Hi how are you";

let str_reversed = str.split(' ');// put each word in an array

str_reversed = str_reversed.map(word => word.split('').reverse().join('')); // for each word, we put each letter in array, reverse them and then re-join them

str_reversed = str_reversed.join(' '); // rejoin the word
console.log(str_reversed);

一个单行解决方案来反转每个单词保持顺序:

var original = 'Hi how are you';

var reversed = original.split("").reverse().join("").split(" ").reverse().join(" ")

o/p: "iH woh era uoy"

let str = 'Hi how are you';

let reverse = str
        .split("")
        .reverse()
        .join("")
        .split(" ")
        .reverse()
        .join(" ")
    );

你的解决方案。

<script>
rev=(val)=>{
return val.split("").reverse().join("").split(" ").reverse().join(" ")
}
console.log(rev('Hi how are you'))
</script>