0
var names = ["Ringo", "John", "Paul", "George"];

for (var i = 0; i < names.length; i++) {
    alert("Say hello to " + names[i]);
}

在上面的代码中,我假设是最后一块 (names[i]) 使数组的索引发生更改以给我正确的名称。这是真的?到底发生了什么?是什么使索引发生更改,以便更改名称?如果我要为变量使用另一个标签,比如“a”、“b”甚至“计数器”,而不是“i”,它还能工作吗?

4

2 回答 2

4

第一部分 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++。这表示“将值加 1 i”。

每次for循环到达右括号时,它都会增加i并评估条件。

在循环内部,i表示您正在使用的数组的当前索引。

您可以names[i]在循环中使用任意多次,for并且在下次到达结束括号并循环返回之前它不会改变。然后i将递增,您将在数组中获得下一个值。

于 2012-07-17T03:27:06.340 回答
2

i是一个完全普通的变量。由于循环
中的语句,它会增加。i++

您可以使用任何字符串或数值执行数组索引,无论它来自什么。

于 2012-07-17T03:01:12.537 回答