048|JavaScript Array精讲

2017-05-25  本文已影响18人  中年小钢炮

前面课程中简单介绍了JavaScript中的数组的使用,这一节中,我们来深入了解一下Array。

在JavaScript中,可以通过以下三种方式创建Array:

var arr = new Array(element0, element1, ..., elementN);
var arr = Array(element0, element1, ..., elementN);
var arr = [element0, element1, ..., elementN];

他们的运行结果都是一样的。创建了一个包含N个元素的数组对象。

单参数构造函数

使用多参创建Array时,上述三种形式结果都一样,非常清晰。

但是当使用单一参数创建Array,并且参数是一个整数时,上述三种方式的结果就不一样了。
我们通过下面的例子来理解一下:

var array1 = new Array(4) // 创建的array1,长度为4,里面所有元素均为null
var array2 = Array(4) // 创建的array2,长度为4,里面所有元素均为null
var array3 = [4] // 创建的array3不为空,长度为1,内容为[4]

console.log(JSON.stringify(array1))
console.log(JSON.stringify(array2))
console.log(JSON.stringify(array3))

上述代码使用单一整数参数,通过三种方式来创建了三人array对象。让我们看一下运行结果:

运行结果

上图中,前两条是通过Array()函数创建的,最后一行是通过Array Literal创建的。所以区别很明显,使用Array()函数创建时,单整数参数指明的是长度;使用Array Literal创建时,单整数参数是惟一的元素。

Array.length特性

在JavaScript中,Array的下标从0开始,这意味着,如果直将一个元素添加到第N位索引,则0-(N-1)位元素将会默认创建,并且值为null。
我们通过下面例子来理解一下:

var array = []
array[4] = 8 // 直接将8放置在4号索引上
console.log(JSON.stringify(array)) // 输出array内容

上述代码,直接将8放置在4号位置上,将导致0-3号位元素被默认创建,值为null。看一下运行结果:

运行结果

运行结果和我们预测的一致。

length的另一个特性是,length可以被用来移除尾部元素。length是一个可设置的值,当length被设置为比当前长度小的值的,尾部元素将会被移除。
我们通过一个例子来理解一下:

var array = [8,9,10,11]
console.log(JSON.stringify(array)) // 输出原始array

array.length=2
console.log(JSON.stringify(array)) // 输出更改length后的array

array的初始length为4,当将length设置为2后,尾部的两个元素将会被移除。我们看一下运行结果:

运行结果

使用foreach方法遍历array

在前面的课程中,我们学习过使用for循环来遍历array。实际上Array类型自带了一个foreach方法,会更加方便。foreach语法如下:

array.foreach(function(item){
    statement1
    statement2
    ... ... 
})

foreach的参数是一个匿名函数,foreach会调用这个匿名函数length次,按从0到length-1的次序,每次传入不同的元素给这个匿名函数。
我们通过一个例子理解一下:

var array = [8,9,10,11]
array.foreach(function(item){
    console.log(item)
})

输出结果将会是:

8
9
10
11

OK,完结。

什么是TypedArray?
什么是WeakMap?

上一篇 下一篇

猜你喜欢

热点阅读