JavaScript Array 对象参考手册

JavaScript Array 对象参考手册

Array 对象

Array 对象用于在单个的变量中存储多个值。

创建 Array 对象的语法:

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);

参数

参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。

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

返回值

返回新创建并被初始化了的数组。

如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。

当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。

当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。

当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

Array 对象属性

FF:Firefox, IE: Internet Explorer

属性

描述

FF

IE

constructor

返回对创建此对象的数组函数的引用。

1

4

index

 

1

4

input

 

1

4

length

设置或返回数组中元素的数目。

1

4

prototype

使您有能力向对象添加属性和方法。

1

4

constructor 属性

定义和用法

constructor属性返回对创建此对象的数组函数的引用。

语法

object.constructor

实例

例子 1

在本例中,我们将展示如何使用 constructor 属性:

<script type="text/javascript">
 
var test=new Array();
 
if (test.constructor==Array)
{
document.write("This is an Array");
}
if (test.constructor==Boolean)
{
document.write("This is a Boolean");
}
if (test.constructor==Date)
{
document.write("This is a Date");
}
if (test.constructor==String)
{
document.write("This is a String");
}
 
</script>

输出:

This is an Array

例子 2

在本例中,我们将展示如何使用 constructor 属性:

<script type="text/javascript">
 
function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
 
var bill=new employee("Bill Gates","Engineer",1985);
 
document.write(bill.constructor);
 
</script>

输出:

function employee(name, jobtitle, born)
{this.name = name; this.jobtitle = job; this.born = born;}

length 属性

定义和用法

length 属性可设置或返回数组中元素的数目。

语法

arrayObject.length

说明

数组的 length 属性总是比数组中定义的最后一个元素的下标大 1。对于那些具有连续元素,而且以元素 0 开始的常规数组而言,属性 length 声明了数组中的元素的个数。

数组的 length 属性在用构造函数 Array() 创建数组时被初始化。给数组添加新元素时,如果必要,将更新 length 的值。

设置 length 属性可改变数组的大小。如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined。

实例

在本例中,我们将展示如何使用 length 属性返回并设置数组的长度:

<script type="text/javascript">
 
var arr = new Array(3)
arr[0] = "John"
arr[1] = "Andy"
arr[2] = "Wendy"
 
document.write("Original length: " + arr.length)
document.write("<br />")
 
arr.length=5
document.write("New length: " + arr.length)
 
</script>

输出:

Original length: 3
New length: 5

prototype 属性

定义和用法

prototype属性使您有能力向对象添加属性和方法。

语法

object.prototype.name=value

实例

在本例中,我们将展示如何使用 prototype 属性来向对象添加属性:

<script type="text/javascript">
 
function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
 
var bill=new employee("Bill Gates","Engineer",1985);
 
employee.prototype.salary=null;
bill.salary=20000;
 
document.write(bill.salary);
 
</script>

输出:

20000

Array 对象方法

FF:Firefox, IE: Internet Explorer

方法

描述

FF

IE

concat()

连接两个或更多的数组,并返回结果。

1

4

join()

把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

1

4

pop()

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

1

5.5

push()

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

1

5.5

reverse()

颠倒数组中元素的顺序。

1

4

shift()

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

1

5.5

slice()

从某个已有的数组返回选定的元素

1

4

sort()

对数组的元素进行排序

1

4

splice()

删除元素,并向数组添加新元素。

1

5.5

toSource()

返回该对象的源代码。

1

-

toString()

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

1

4

toLocaleString()

把数组转换为本地数组,并返回结果。

1

4

unshift()

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

1

6

valueOf()

返回数组对象的原始值

1

4

concat() 方法

定义和用法

concat()方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法

arrayObject.concat(arrayX,arrayX,......,arrayX)

参数

描述

arrayX

必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

返回值

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

实例

例子 1

在本例中,我们将把 concat() 中的参数连接到数组 a 中:

<script type="text/javascript">
 
var a = [1,2,3];
document.write(a.concat(4,5));
 
</script>

输出:

1,2,3,4,5

例子 2

在本例中,我们创建了两个数组,然后使用concat() 把它们连接起来:

<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"
 
document.write(arr.concat(arr2))
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin

例子 3

在本例中,我们创建了三个数组,然后使用concat() 把它们连接起来:

<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))
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin,William,Franklin

join() 方法

定义和用法

join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。

语法

arrayObject.join(separator)

参数

描述

separator

可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值

返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator 字符串而生成的。

实例

例子 1

在本例中,我们将创建一个数组,然后把它的所有元素放入一个字符串:

<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

例子 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

pop() 方法

定义和用法

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

语法

arrayObject.pop()

返回值

arrayObject的最后一个元素。

说明

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

实例

在本例中,我们将创建一个数组,然后删除数组的最后一个元素。请注意,这也会改变数组的程度:

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

输出:

George,John,Thomas
Thomas
George,John

push() 方法

定义和用法

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

语法

arrayObject.push(newelement1,newelement2,....,newelementX)

参数

描述

newelement1

必需。要添加到数组的第一个元素。

newelement2

可选。要添加到数组的第二个元素。

newelementX

可选。可添加多个元素。

返回值

把指定的值添加到数组后的新长度。

说明

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

提示和注释

注释:该方法会改变数组的长度。

提示:要想数组的开头添加一个或多个元素,请使用unshift() 方法。

实例

在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:

<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.push("James") + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas
4
George,John,Thomas,James

reverse() 方法

定义和用法

reverse()方法用于颠倒数组中元素的顺序。

语法

arrayObject.reverse()

提示和注释

注释:该方法会改变原来的数组,而不会创建新的数组。

实例

在本例中,我们将创建一个数组,然后颠倒其元素的顺序:

<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() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

语法

arrayObject.shift()

返回值

数组原来的第一个元素的值。

说明

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

提示和注释

注释:该方法会改变数组的长度。

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

实例

在本例中,我们将创建一个数组,并删除数组的第一个元素。请注意,这也将改变数组的长度:

<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.shift() + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas
George
John,Thomas

slice() 方法

定义和用法

slice() 方法可从已有的数组中返回选定的元素。

语法

arrayObject.slice(start,end)

参数

描述

start

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

end

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

返回值

返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

说明

请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

提示和注释

注释:您可使用负值从数组的尾部选取元素。

注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

实例

例子 1

在本例中,我们将创建一个新数组,然后显示从其中选取的元素:

<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.slice(1) + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas
John,Thomas
George,John,Thomas

例子 2

在本例中,我们将创建一个新数组,然后显示从其中选取的元素:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
 
document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin

sort() 方法

定义和用法

sort() 方法用于对数组的元素进行排序。

语法

arrayObject.sort(sortby)

参数

描述

sortby

可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

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

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

·        若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

·        若 a 等于 b,则返回 0。

·        若 a 大于 b,则返回一个大于 0 的值。

实例

例子 1

在本例中,我们将创建一个数组,并按字母顺序进行排序:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
 
document.write(arr + "<br />")
document.write(arr.sort())
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin
Adrew,George,James,John,Martin,Thomas

例子 2

在本例中,我们将创建一个数组,并按字母顺序进行排序:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
 
document.write(arr + "<br />")
document.write(arr.sort())
 
</script>

输出:

10,5,40,25,1000,1
1,10,1000,25,40,5

请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

<script type="text/javascript">
 
function sortNumber(a,b)
{
return a - b
}
 
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
 
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
 
</script>

输出:

10,5,40,25,1000,1
1,5,10,25,40,1000

splice() 方法

定义和用法

splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

语法

arrayObject.splice(index,howmany,item1,.....,itemX)

参数

描述

index

必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany

必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX

可选。向数组添加的新项目。

返回值

类型

描述

Array

包含被删除项目的新数组,如果有的话。

说明

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

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

技术细节

JavaScript 版本:

1.2

浏览器支持

所有主流浏览器都支持 splice() 方法。

提示和注释

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

实例

例子 1

在本例中,我们将创建一个新数组,并向其添加一个元素:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
 
document.write(arr + "<br />")
arr.splice(2,0,"William")
document.write(arr + "<br />")
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin

例子 2

在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
 
document.write(arr + "<br />")
arr.splice(2,1,"William")
document.write(arr)
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin

例子 3

在本例中我们将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素:

<script type="text/javascript">
 
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
 
document.write(arr + "<br />")
arr.splice(2,3,"William")
document.write(arr)
 
</script>

输出:

George,John,Thomas,James,Adrew,Martin
George,John,William,Martin

toSource() 方法

定义和用法

toSource()方法表示对象的源代码。

该原始值由 Array 对象派生的所有对象继承。

toSource()方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

语法

object.toSource()

浏览器支持

只有 Gecko 核心的浏览器(比如 Firefox)支持该方法,也就是说 IE、Safari、Chrome、Opera 等浏览器均不支持该方法。

实例

下面的例子向您展示 toSource() 方法的用法:

<script type="text/javascript">
 
function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
 
var bill=new employee("Bill Gates","Engineer",1985);
 
document.write(bill.toSource());
 
</script>

输出:

({name:"Bill Gates", job:"Engineer", born:1985}) 

toString() 方法

定义和用法

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

语法

arrayObject.toString()

返回值

arrayObject的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。

说明

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

提示和注释

注释:数组中的元素之间用逗号分隔。

实例

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

输出:

George,John,Thomas

toLocaleString() 方法

定义和用法

把数组转换为本地字符串。

语法

arrayObject.toLocaleString()

返回值

arrayObject的本地字符串表示。

说明

首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

实例

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

输出:

George, John, Thomas

unshift() 方法

定义和用法

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

语法

arrayObject.unshift(newelement1,newelement2,....,newelementX)

参数

描述

newelement1

必需。向数组添加的第一个元素。

newelement2

可选。向数组添加的第二个元素。

newelementX

可选。可添加若干个元素。

返回值

arrayObject的新长度。

说明

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

请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。

提示和注释

注释:该方法会改变数组的长度。

注释:unshift()方法无法在 Internet Explorer 中正确地工作!

提示:要把一个或多个元素添加到数组的尾部,请使用 push() 方法。

实例

在本例中,我们将创建一个数组,并把一个元素添加到数组的开头,并返回数组的新长度:

<script type="text/javascript">
 
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
 
document.write(arr + "<br />")
document.write(arr.unshift("William") + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas
4
William,George,John,Thomas

valueOf() 方法

定义和用法

valueOf()方法返回 Array 对象的原始值。

该原始值由 Array 对象派生的所有对象继承。

valueOf()方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

语法

arrayObject.valueOf()

 

转自:http://www.w3school.com.cn/js/jsref_obj_array.asp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值