在这种情况下,`foo [x]`意味着什么?

时间:2012-08-13 09:52:46

标签: javascript

我在下面有一个非常标准的Javascript循环,但我很难尝试理解它的部分内容,并希望了解代码的这些部分以及它们的工作原理。

var numbers = [3,345,28,90,102];
var max = 0;
for(var i=0;i<numbers.length;i++){
    if(numbers[i] > max){
        max = numbers[i];
    }
}
alert(max);

我的主要问题是了解以下内容:

numbers[i]

这是什么意思,它是如何以这种方式存在的?

我认为[x]正在访问数组的一部分,如果是这样,数组的构建方式和位置是什么?

4 个答案:

答案 0 :(得分:6)

var numbers = [3,345,28,90,102];

的简写
var numbers = new Array(3,345,28,90,102);

这就是numbers如何成为数组的故事

numbers[x]访问数组中的x(0索引)元素。例如,numbers[0]会返回第一个3项。


作为奖励,整个片段可以替换为:

var numbers = [3,345,28,90,102];
var max = Math.max.apply(Math, numbers);

答案 1 :(得分:1)

var numbers = [3,345,28,90,102];

此代码正在创建一个值为3,345,28等的整数数组。

访问可以使用的数组元素:(数组从0索引开始)

numbers[0] is 3
numbers[1] is 345
numbers[2] is 28

现在在这段代码中,var i用于迭代整个数组直到'numbers.length'并使用数字[i]访问所有值。 while循环将迭代i = 0到i = 5(数组的长度)。

if(numbers[i] > max){
    max = numbers[i];
}

这个条件试图从数组中找到最大数量。并将其设置为变量max。

答案 2 :(得分:0)

var numbers = [3,345,28,90,102]; 

这是数组“构建”(声明)的地方。

你可以做到的另一种方式是声明new Array(),然后逐个填充元素。

答案 3 :(得分:0)

var numbers = [3,345,28,90,102];

这会使用成员3,345,28,90,102初始化一个数组,总共有5个项目。

var max = 0;

初始化为零。假设所有数字都是非负数。

for(var i=0;i<numbers.length;i++){

运行数组numbers的所有项目。

    if(numbers[i] > max){

如果我们得到的数字大于我们目前的最大值......

        max = numbers[i];

...将我们的最大值调整为该数字。

    }
}

alert(max);

输出最大值