JavaScript 数组(Array)基础

发布时间:2020-03-03编辑:脚本学堂
本文介绍下,有关javascript数组的一些基础知识,有需要的朋友参考下。

javascript中,Array 对象用来存储多个变量的值。

下面我们来介绍一些有关javascript数组对象的基础知识。

1,创建Array对象
例1,
 

复制代码 代码示例:
var arr1 = [];             //创建一个空的Array对象
vararr2 =newArray();    //创建一个空的Array对象

这两种创建方法的作用是一样的,前一种是缩写,为arr1赋了一个空数组值。

例2,

复制代码 代码示例:
var arr3 = new Array(size);
 

创建一个指定长度的Array对象,在创建的时候,length属性将被设定为size的值

例3,

复制代码 代码示例:
var arr4 = new Array(element0, element1, ..., elementn);

当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。

2,Array 对象属性
length:设置或返回数组中元素的数目。

3,Array 对象方法
concat()
连接两个或更多的数组,并返回结果。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
例1,
 

复制代码 代码示例:

<script type="text/javascript">
//连接数组对象
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"

    var arr2 = new Array(3)
    arr2[0] = "James"
    arr2[1] = "Adrew"
    arr2[2] = "Martin"

    var arr3 = new Array(2)
    arr3[0] = "William"
    arr3[1] = "Franklin"

    document.write(arr.concat(arr2,arr3))
//by www.jb200.com
</script>

输出结果:
George,John,Thomas,James,Adrew,Martin,William,Franklin
join(separator)

把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
参数separator: 指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
例2,
 

复制代码 代码示例:

<script type="text/javascript">
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"

    document.write(arr.join())
</script>
 

输出结果:
George,John,Thomas
例3,
 

复制代码 代码示例:

<script type="text/javascript">
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"

    document.write(arr.join("."))
</script>
 

输出结果:
George.John.Thomas

pop()
删除并返回数组的最后一个元素

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

要删除并返回数组的第一个元素,请使用 shift() 方法。

push()
向数组的末尾添加一个或更多元素,并返回新的长度。

push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

reverse()
颠倒数组中元素的顺序。 该方法会改变原来的数组,而不会创建新的数组。
例4,
 

复制代码 代码示例:

<script type="text/javascript">
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"

    document.write(arr + "<br />")
    document.write(arr.reverse())
</script>
 

输出结果:
George,John,Thomas
Thomas,John,George

shift()
删除并返回数组的第一个元素

如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。

要删除并返回数组的最后一个元素,请使用 pop() 方法。

slice(start, end)
从某个已有的数组返回选定的元素。该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

参数 start :必选参数。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

参数 end :可选参数。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

您可使用负值从数组的尾部选取元素;如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

sort(sortBy)
对数组的元素进行排序。数组在原数组上进行排序,不生成副本。

参数 sortBy:可选参数,必须是函数。

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
splice(index, count, element1…elementN)
插入、删除或替换数组的元素。

参数 index:必选参数。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

参数 count:必选参数。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

参数 element1…elementN:可选参数,规定要添加到数组的新元素。从 index 所指的下标处开始插入。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

toString()
把数组转换为字符串,并返回结果。

返回值与没有参数的 join() 方法返回的字符串相同,数组中的元素之间用逗号分隔。

当数组用于字符串环境时,JavaScript 会调用这一方法将数组自动转换成字符串。但是在某些情况下,需要显式地调用该方法。

unshift()
向数组的开头添加一个或更多元素,并返回新的长度。

unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。

注意:
unshift() 方法不创建新的创建,而是直接修改原有的数组。
unshift() 方法无法在 Internet Explorer 中正确地工作。