首页 » 学习JavaScript数据结构与算法(第2版) » 学习JavaScript数据结构与算法(第2版)全文在线阅读

《学习JavaScript数据结构与算法(第2版)》2.2 创建和初始化数组

关灯直达底部

用JavaScript声明、创建和初始化数组很简单,就像下面这样:

var daysOfWeek = new Array; //{1}var daysOfWeek = new Array(7); //{2}var daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday'); //{3}  

使用new关键字,就能简单地声明并初始化一个数组(行{1})。用这种方式,还可以创建一个指定长度的数组(行{2})。另外,也可以直接将数组元素作为参数传递给它的构造器(行{3})。

其实,用new创建数组并不是最好的方式。如果你想在JavaScript中创建一个数组,只用中括号()的形式就行了,如下所示:

var daysOfWeek = ;  

也可使用一些元素初始化数组,如下:

var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday'];  

如果想知道数组里已经存了多少个元素,可以使用数组的length属性。以下代码的输出是7

console.log(daysOfWeek.length);  

访问元素和迭代数组

要访问数组里特定位置的元素,可以用中括号传递数值位置,得到想知道的值或者赋新的值。假如我们想输出数组daysOfWeek里的所有元素,可以通过循环遍历数组,打印元素,如下所示:

for (var i=0; i<daysOfWeek.length; i++){  console.log(daysOfWeek[i]);}  

我们来看另一个例子:求斐波那契数列的前20个数字。已知斐波那契数列中第一个数字是1,第二个是2,从第三项开始,每一项都等于前两项之和:

var fibonacci = ; //{1}fibonacci[1] = 1; //{2}fibonacci[2] = 2; //{3}for(var i = 3; i < 20; i++){  fibonacci[i] = fibonacci[i-1] + fibonacci[i-2]; ////{4}}for(var i = 1; i<fibonacci.length; i++){ //{5}  console.log(fibonacci[i]);           //{6}}  
  • 在行{1}处,我们声明并创建了一个数组。

  • 在行{2}和行{3},把斐波那契数列中的前两个数字分别赋给了数组的第二和第三位(在JavaScript中,数组的第一位是0,这里我们略过,从第二位开始分别保存斐波那契数列中对应位置的元素)。

  • 然后,我们需要做的就是想办法得到斐波那契数列的第三到第二十位的数字(前两个值我们已经初始化过了)。我们可以用循环来处理,把数组中前两位上的元素相加,结果赋给当前位置上的元素(行{4}——从数组中的索引3到索引19)。

  • 最后,看看输出(行{6}),我们只需要循环遍历数组的各个元素(行{5})。

 示例代码里,我们用console.log来输出数组中对应索引位置的值(行{5}和行{6}),也可以直接用console.log(fibonacci)输出数组。大多数浏览器都可以用这种方式,清晰地输出数组。

现在如果想知道斐波那契数列其他位置上的值是多少,要怎么办呢?很简单,把之前循环条件中的终止变量从20改成你希望的值就可以了。