如何在没有内置函数的情况下反转字符串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
使用空字符串。