在 javascript 中反转字符串

问题描述 投票:0回答:4

我借用了一段 JavaScript 中反转字符串的代码。然而却做不到。

                <!DOCTYPE HTML>
            <html>
            <head>
            <meta charset="utf-8">
            <title>P4--Largest palindrome product</title>
            </head>
            <body>
            <!--A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

            Find the largest palindrome made from the product of two 3-digit numbers.
             --> 
            <script type="text/javascript">
            var newdiv = document.createElement('div');
            newdiv.innerHTML=Palindromic();
                alert(Palindromic());
            function Palindromic(){
                var x;
                var a;
                var b;
                for(i=999*999;i>=100*100;i--)
                {
                    x=i.toString();
                    if(x != x.reverse())
                       continue;
                    else
                    {
                        for(j=100;j<999;j++)
                        {
                            if(i%j == 0)
                            {
                                var y =i/j;
                                if(y>=100 && y<=999)
                                {
                                    a=i;b=y;
                                    break;
                                }
                            }
                        }
                    }
                }
                return x;
            }
            String.prototype.reverse = function() {
              return this.split('').reverse().join('');
            }
            </script>
            </body>
            </html>

错误是“没有‘反向’方法”。

javascript
4个回答
3
投票

使用之前需要先定义

String.prototype.reverse
函数。

输入此代码

String.prototype.reverse = function() {
  return this.split('').reverse().join('');
}

在顶部而不是在底部。


1
投票

ES6: 试试这个功能

function reverse(str) {
           // 1 //    // 2 //   // 3 //
    return [...str].reverse().reduce((rev,el) => rev + el,'');
}
  1. 将字符串扩展到字符数组中
  2. 反转数组
  3. 数组上的reduce方法获取前一个值并累加。

0
投票

这是最简单的方法:

// reverse a string
function reverseString(str) {
  return str.split('').reverse().join('');
}

const reversedString = reverseString('hello world');
console.log(reversedString); // this would be logged as 'dlrow olleh'

0
投票

探索 JavaScript 中反转字符串的多种方法 反转字符串是编程中的一项常见任务,在 JavaScript 中有多种方法可以实现此目的。让我们探索五种不同的方法并讨论它们的实现和效率。

1。使用循环(方法 1) 第一种方法采用简单的循环来迭代字符串,并通过以相反的顺序附加原始字符串中的字符来构造反向版本。在此处输入代码

const reverseByLoop = (str) => {
  let reversed = "";
  for (let i = 0; i < str.length; i++) {
    reversed = str[i] + reversed;
  }
  return reversed;
};

这种方法简单直观,但由于循环内的串联操作,它可能不是大字符串的最有效解决方案。

2。使用循环(方法 2) 与第一种方法类似,此方法通过从字符串末尾迭代到开头并将字符附加到反转的字符串来反转字符串。

const reverseByLoop1 = (str) => {
  let reversed = "";
  for (let i = str.length - 1; i >= 0; i--) {
    reversed = reversed + str[i];
  }
  return reversed;
};

虽然这种方法的时间复杂度也为 O(n),但它的性能可能比第一种方法稍好,因为它避免了循环内的字符串连接。

3.使用循环(方法 3) 此方法不使用基于索引的循环,而是利用 for...of 循环来迭代字符串的每个字符并构建反向字符串。

const reverseByLoopOf = (str) => {
  let reversed = "";
  for (let char of str) {
    reversed = char + reversed;
  }
  return reversed;
};

虽然在概念上与第一种方法类似,但此方法提供了更清晰的语法和可读性。

4。使用字符串方法 这种方法利用 split()、reverse() 和 join() 等内置字符串方法在一行代码中反转字符串。

const reverseByStringMethod = (str) => {
  return str.split("").reverse().join("");
};

虽然简洁且优雅,但由于创建数组的开销,此方法可能不如基于循环的大字符串方法那么高效。

5。使用递归 递归方法通过使用不包括第一个字符的子字符串递归调用函数来反转字符串,直到整个字符串反转。

const recursiveReverse = (str) => {
  let result = "";
  if (!str) {
    return "";
  } else {
    result = recursiveReverse(str.substr(1)) + str[0];
    return result;
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.