如何在没有内置函数的情况下反转字符串javascript。。?

如何在没有内置函数的情况下反转字符串javascript。。?,javascript,arrays,node.js,for-loop,Javascript,Arrays,Node.js,For Loop,我想反转一个没有内置函数的字符串,例如拆分、反转和加入,我已经尝试了这里的代码,但我不太明白第四行的代码是什么,我需要在第四行做更多的解释。这是我的代码,有一些解释 function reverseString(str) { reverseIt = []; for (i = 0; i < str.length; i++) { reverseIt = str[i] + reverseIt; // the first way that works // reverse

我想反转一个没有内置函数的字符串,例如拆分反转加入,我已经尝试了这里的代码,但我不太明白第四行的代码是什么,我需要在第四行做更多的解释。这是我的代码,有一些解释

 function reverseString(str) {
  reverseIt = [];
  for (i = 0; i < str.length; i++) {
    reverseIt = str[i] + reverseIt; // the first way that works
    // reverseIt = str[i] + [];    // first.. i assume the variable "reverseIt" is equal to "[]", but the result from this line is not equal to the line above
    // reverseIt = str[i] + '';    // then i try this way with assume the variable reverseIt is empty string (""), but the result from this line not produce the expected result

    // var testing = [];             // and then  i try to make an empty array variable again
    // reverseIt = str[i] + testing; // and try to add the variable above, but this still not realy produce the expected result
    /*
      So the questions.., why the first way can works..?, what's actualy the code on that line do..?
    */
  }
  return reverseIt;
}
console.log(reverseString('Javascript'));
功能反向限制(str){
反转=[];
对于(i=0;i
字面意思是从第一个字符开始到结束,在每个步骤中,在整个创建的字符串之前添加新字符

例如,对于名称
david
,它从一个空字符串开始,然后将每个字母推送到序列的开头。 从零开始,然后
d
,然后在开头添加
a
,这将使
ad
,然后添加
v
成为
vad
,依此类推,以
divad
结束

->您使用此代码尝试了什么:

reverseIt = str[i] + [];
var testing = [];
reverseIt = str[i] + testing;
与原始代码不同。因为
reverseIt
仅在开始时是
[]
!(请注意,这里的
[]
等于
'
,因为在这个问题上字符串只是一个字符串数组!所以这两种情况都包含在内。)

一开始它确实是
[]
(或者
'
,这里没有区别),但经过一个级别,它就变成了
d
!然后新的
str[i]
a
,然后连接到
reverseeit
,现在是
d
,然后结果变成
ad
,将放入
reverseeit
!因此,在这一步结束时,
reverseeit
变量等于
ad
,而不是
[]
!它继续这样,直到整个字符串被颠倒

->您使用此代码尝试了什么:

reverseIt = str[i] + [];
var testing = [];
reverseIt = str[i] + testing;

是不正确的,因为您实际上是在每一步重置反转的字符串,而不是将新字符串连接到已创建的字符串,而是将其设置为最新的字符。因此,首先,
reverseIt
[]
,然后变成
d
,然后变成
a
,然后变成
v
,依此类推,因为在每一步,它都等同于
str[i]+测试
,而且因为
测试总是
[]
,它实际上变成这样:
reverseIt=str[i]
,因此在结尾,它只包含字符串的最后一个字符

字面意思是从第一个字符开始到结束,在每个步骤中,在整个创建的字符串之前添加新字符

例如,对于名称
david
,它从一个空字符串开始,然后将每个字母推送到序列的开头。 从零开始,然后
d
,然后在开头添加
a
,这将使
ad
,然后添加
v
成为
vad
,依此类推,以
divad
结束

->您使用此代码尝试了什么:

reverseIt = str[i] + [];
var testing = [];
reverseIt = str[i] + testing;
与原始代码不同。因为
reverseIt
仅在开始时是
[]
!(请注意,这里的
[]
等于
'
,因为在这个问题上字符串只是一个字符串数组!所以这两种情况都包含在内。)

一开始它确实是
[]
(或者
'
,这里没有区别),但经过一个级别,它就变成了
d
!然后新的
str[i]
a
,然后连接到
reverseeit
,现在是
d
,然后结果变成
ad
,将放入
reverseeit
!因此,在这一步结束时,
reverseeit
变量等于
ad
,而不是
[]
!它继续这样,直到整个字符串被颠倒

->您使用此代码尝试了什么:

reverseIt = str[i] + [];
var testing = [];
reverseIt = str[i] + testing;

是不正确的,因为您实际上是在每一步重置反转的字符串,而不是将新字符串连接到已创建的字符串,而是将其设置为最新的字符。因此,首先,
reverseIt
[]
,然后变成
d
,然后变成
a
,然后变成
v
,依此类推,因为在每一步,它都等同于
str[i]+测试
,而且因为
测试总是
[]
,它实际上变成这样:
reverseIt=str[i]
,因此在结尾,它只包含字符串的最后一个字符

如果您还不知道,字符串基本上就是它自己的字符数组。您可以像使用数组一样循环字符串,每次迭代都会得到该字符串的一个字符

function reverseString(str) {
    var data="HELLO WORLD!";  // Test string
    var reverseIt ="";  // variable to save reversed string
    for(var i=data.length-1;i>=0;i--) // start the loop from last character and run it towards the first character
    {
        reverseIt +=data[i] // append current character to reverse variable
    }
    document.write(reverseIt ); // print reverse
return reverseIt;
}

如果您还不知道,字符串基本上就是它自己的字符数组。您可以像使用数组一样循环字符串,每次迭代都会得到该字符串的一个字符

function reverseString(str) {
    var data="HELLO WORLD!";  // Test string
    var reverseIt ="";  // variable to save reversed string
    for(var i=data.length-1;i>=0;i--) // start the loop from last character and run it towards the first character
    {
        reverseIt +=data[i] // append current character to reverse variable
    }
    document.write(reverseIt ); // print reverse
return reverseIt;
}

Javascript将数组转换为字符串,其中描述了“
+
”操作符,因此我建议您为
reverseeit
使用空字符串。