【问题标题】:How to reverse word by word in a string using javascript?如何使用javascript逐字反转字符串中的单词?
【发布时间】:2019-11-14 15:44:03
【问题描述】:

我正在用字符串 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"));

【问题讨论】:

  • 澄清“预定义方法”是什么意思。听起来是毫无根据的毫无意义的要求。
  • 鉴于您的编辑:Answer should not be contain any predefined method. Like- (split (), reverse () ..) 那么此代码将与您将获得的一样简洁。虽然很丑。我不确定你为什么想要(坦率地说很荒谬)无方法规则。

标签: javascript jquery string reverse ecmascript-5


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您的解决方案。

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

    【讨论】:

      【解决方案3】:

      一种方法是使用 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);

      【讨论】:

        【解决方案4】:

        一种将每个单词颠倒并保持顺序的单行解决方案:

        var original = 'Hi how are you';
        
        var reversed = original.split("").reverse().join("").split(" ").reverse().join(" ")
        

        o/p: "iH woh era uoy"

        【讨论】:

          【解决方案5】:
          let str = 'Hi how are you';
          
          let reverse = str
                  .split("")
                  .reverse()
                  .join("")
                  .split(" ")
                  .reverse()
                  .join(" ")
              );
          

          【讨论】:

            猜你喜欢
            • 2020-12-29
            • 2016-03-03
            • 1970-01-01
            • 2015-12-13
            • 1970-01-01
            • 2013-04-01
            • 1970-01-01
            相关资源
            最近更新 更多