javascript中字符串的倒数

javascript中字符串的倒数,javascript,Javascript,定义一个函数reverse(),用于计算字符串的反转。例如,reverse(“jag testar”)应该返回字符串“ratset gaj”。因为我遇到了错误,而且我是javascript新手。我得到了代码。但它没有执行 //my code function (string) { var length = string.length; var reversed = []; var joined = (""); for (var i = length; i >

定义一个函数reverse(),用于计算字符串的反转。例如,reverse(“jag testar”)应该返回字符串“ratset gaj”。因为我遇到了错误,而且我是javascript新手。我得到了代码。但它没有执行

//my code 
function (string)
{
    var length = string.length;
    var reversed = [];
    var joined = ("");
    for (var i = length; i > 0; i--){
        reversed.push(string.charAt(i-1));
    }

    for (i = 0; i < (length) ; i++){
        joined += (reversed[i]);

    }

    return joined ;
//我的代码
函数(字符串)
{
var length=string.length;
var反向=[];
var=(“”);
对于(变量i=长度;i>0;i--){
反向推(字符串字符(i-1));
}
对于(i=0;i<(长度);i++){
加入+=(反向[i]);
}
回归加入;

单击该按钮可反转阵列中元素的顺序

试试看

var水果=[“香蕉”、“橙子”、“苹果”、“芒果”]; document.getElementById(“demo”).innerHTML=fruits; 函数myFunction(){ 水果。反向(); document.getElementById(“demo”).innerHTML=fruits; }

第1点:您的
函数
声明不正确:

function (string)
javascript
中声明函数的正确方法是:

function functionName(varName)
第2点(我猜是打字错误):您的函数必须以
}
结尾,否则将抛出错误

因此,在您的具体案例中,如果您为此替换函数:

function reverse(s){
    return s.split("").reverse().join("");
}
这样称呼它:

var yourString = "ABCDE";
var reversedString = reverse(yourString);  

// reversedString = "EDCBA"
要了解其工作原理,请执行以下操作:

  • 它使用
    split(“”)将字符串拆分为单个字符数组,因此
    “ABCDE”。split(“”=[“A”、“B”、“C”、“D”、“E”]
  • 数组:reverse()
    函数反转顺序,因此
    [“A”、“B”、“C”、“D”、“E”]。reverse()=[“E”、“D”、“C”、“B”、“A”]
  • join(“”)
    再次重建字符串,因此
    [“E”、“D”、“C”、“B”、“A”]。join(“”=“EDCBA”
在OP中:

function (string)
在函数声明中,名称是必需的,因此:

function reverse(string)

{
    var length = string.length;
不需要长度,只需在for循环中将i初始化为string.length

不需要分组运算符:

    var joined = "";
但根本没有必要加入

您省略了结束括号:

}
如注释中所述,您可以使用split、reverse和join或递归函数。您也可以使用split和forEach,但使用普通循环可能会更快,正如您所做的:

function reverse(s) {
  var result = '',
      i = s.length;

  while (i) {
    result += s[--i];
  }
  return result;
}

虽然
+=
在一些较旧的浏览器中速度可能较慢。也许可以测试性能——哦,看,这是……而普通循环是最快的

function reverse(s){return s.length?reverse(s.slice(1))+s[0]:'}
string.split(“”).reverse().join(“”)有什么错误?在上面的代码中,函数名作为reverse reverse(string)丢失。如果我使用它,它会发送未使用的变量,就像函数没有名称一样,并且缺少结束符
}
。你能发布真正的函数吗?但是…问题是关于字符串,而不是数组。欢迎来到。看来您是从中复制的,没有属性。当使用其他来源的内容时,请提供归属(通过提供链接),并注意任何相关内容均来自该来源。有关更多信息,请阅读。谢谢谢谢你对我的关注
    for (var i = length; i > 0; i--){
        reversed.push(string.charAt(i-1));
    }

    for (i = 0; i < (length) ; i++){
        joined += (reversed[i]);
    }
  return reversed.join('');

    return joined ;
}
function reverse(s) {
  var result = '',
      i = s.length;

  while (i) {
    result += s[--i];
  }
  return result;
}