var names = ["Ringo", "John", "Paul", "George"];
for (var i = 0; i < names.length; i++) {
alert("Say hello to " + names[i]);
}
在上面的代码中,我假设它是最后一块(names [i])使得数组的索引发生变化以给我正确的名称。这是真的?到底发生了什么?什么使索引发生变化,以便更改名称?如果我要为变量使用另一个标签,说'a','b'或甚至'counter',而不是'i',它还能用吗?
答案 0 :(得分:3)
第一部分
var names = ["Ringo", "John", "Paul", "George"];
是你的数组定义。您正在加载包含4个项目的JavaScript数组。它们在数组中的索引如下:
0 = "Ringo"
1 = "John"
2 = "Paul"
3 = "George"
要在JS中单独引用这些项目,您可以这样做:
var nameOne = names[0]; //nameOne = "Ringo"
var nameTwo = names[1]; //nameTwo = "John"
代码中的for
循环遍历数组中的每个项目。 var i = 0
表示我们正在创建一个新变量以用作数组的索引。这可以很容易var a
,var b
,var indexOfTheArray
。随你。
下一部分i < names.length
是导致for
循环重复直到满足为止的条件。在这种情况下,只要i
的值小于数组names
的长度,它就表示“循环”。 array.length
给出数组中的项目总数。所以names.length
等于4。
最后一部分是一个特殊的JS命令i++
。这表示“将i
”的值加1。
每次for
循环到达结束括号时,它会递增i
,并评估条件。
在循环内部,i
表示您正在使用的数组的当前索引。
您可以在names[i]
循环中多次使用for
,并且在下次到达结束括号并且循环回来之前它不会改变。然后i
将递增,您将获得数组中的下一个值。
答案 1 :(得分:1)
i
是一个完全普通的变量
由于循环中的i++
语句,它会增加。
您可以使用任何字符串或数值执行数组索引,无论它来自何处。