javascript for()循环,split()和数组问题

Jar*_*red 5 javascript arrays split for-loop

好的,我最近一直在问很多JS问题,并意识到我只需要去学习它.

按照http://www.tizag.com/javascriptT上的教程非常简单明了.

我只是想确保我理解正确.我花了一段时间才得到它:

<script type="text/javascript">
var myString = "zero one two three four";

var mySplitResult = myString.split(" ");

for(i = 0; i < mySplitResult.length; i++){
    document.write("<br /> Element " + i + " = " + mySplitResult[i]); 
}
</script>
Run Code Online (Sandbox Code Playgroud)

-

var myString = "zero one two three four";
Run Code Online (Sandbox Code Playgroud)

显然,这会创建一个简单的字符串变量.

var mySplitResult = myString.split(" ");
Run Code Online (Sandbox Code Playgroud)

使用""作为分隔符将其拆分,并将其分配给mySplitResult数组.正确?或者它不是一个数组?

for(i = 0; i < mySplitResult.length; i++){
Run Code Online (Sandbox Code Playgroud)

这是说数组中的值的数量?似乎不能说出字符串中字符的实际长度.

document.write("<br /> Element " + i + " = " + mySplitResult[i]); 
Run Code Online (Sandbox Code Playgroud)

这只返回mySplitResult [i]变量"i".由于我随着每个循环增加,它从数组中提取正确的信息.

Tim*_*own 12

你的理解基本上是正确的.你应该做的一件事是声明你所有的变量:这在函数内部尤为重要.因此,您应该i在循环之前声明为变量:

var i;
for (i = 0; i < mySplitResult.length; i++) {
Run Code Online (Sandbox Code Playgroud)

......或在for声明中的第一个表达式中:

for (var i = 0; i < mySplitResult.length; i++) {
Run Code Online (Sandbox Code Playgroud)


Jam*_*ack 1

您的分析是正确的,但您应该通过测试来看到这一点。在 Firefox 中使用 Firebug 扩展,您可以单步执行 JavaScript。

这将帮助您了解正在发生的情况,因为您可以查看元素的属性并监视实际发生的情况。