- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在没有内置函数的情况下反转字符串,例如 split、reverse 和 join,我已经尝试了这里的代码 https://stackoverflow.com/a/51751393/8070090,但我不太明白第四行的代码是做什么的,我需要第四行的更多解释。这是我的代码,有一些解释
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'));
最佳答案
字面意思是从第一个字符开始到最后,每一步,在整个创建的字符串之前添加新字符
例如,对于名字 david
,它从一个空字符串开始,然后将每个字母推到系列的开头。从零开始,然后是 d
,然后在开头添加 a
,这将生成 ad
,然后添加 v
成为 vad
,以 divad
-> 你用这段代码尝试了什么:
reverseIt = str[i] + [];
与原始代码不同。因为 reverseIt
是 []
仅在开头! (请注意,这里的 []
等于 ''
,因为在这方面字符串只是一个字符串数组!所以这包含两种情况。)
一开始确实是[]
(或者''
,这里没区别),但是往下一层,就变成了d
!然后新的 str[i]
是 a
然后连接到 reverseIt
现在是 d
,然后是结果变成 ad
将被放入 reverseIt
!所以在这一步结束时,reverseIt
变量等于 ad
,而不是 []
!如此继续下去,直到整个字符串被反转。
-> 你用这段代码尝试了什么:
var testing = [];
reverseIt = str[i] + testing;
是不正确的,因为你实际上是在每一步重置你的反向字符串,你没有将新字符串连接到已经创建的字符串,而是你只是将它设置为最新的字符。所以一开始,reverseIt
是[]
,然后变成d
,然后变成a
,再变成 v
,依此类推,因为在每一步,它都等于 str[i] + testing
,并且因为 testing
始终是 [ ]
,字面上变成这样:reverseIt = str[i]
,所以到最后,它只包含字符串的最后一个字符!
关于javascript - 如何在没有内置函数的情况下反转字符串 javascript ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354110/
我是一名优秀的程序员,十分优秀!