JavaScript ES3 数组常用方法详解与示例

作者:纸飞机时间:2026-10-22 07:53:26浏览:367

本文系统总结了JavaScript ES3标准中的11个常用数组方法,涵盖连接、字符串转换、元素增删及排序四大类。详细解析了concat、join、toString、pop、push、shift、unshift、slice、splice、reverse和sort的语法、参数及返回值,并结合具体代码示例说明其实际应用场景与注意事项。

JavaScript ES3 数组方法概览

本文对JavaScript中常用的数组操作方法进行归纳整理。

以下内容仅涵盖ES3标准中常用的11个数组方法,ES5新增的9个方法将在后续章节单独总结。

共包含1种数组连接方法:concat()。

共包含2种将数组转换为字符串的方法:join()和toString()。

共包含6种用于增删数组元素的方法:pop()、push()、shift()、unshift()、slice()和splice()。

共包含2种数组排序方法:reverse()和sort()。

数组连接与字符串转换

以下是关于连接数组方法的详细说明。

1、concat()

功能:用于连接两个或多个数组,并将结果作为一个新数组返回。

语法:arr1.concat(arr2,arr3...)

示例代码:


<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

以下是将数组转换为字符串的方法说明。

1、join()

功能:将数组中的所有元素连接成一个字符串,并可通过指定分隔符进行分隔。

语法:arrayObject.join(separator)

示例代码:


<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、toString()

功能:将数组转换为字符串,并返回转换后的结果。

语法:arrayObject.toString()

示例代码:


<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

其返回值与调用无参数的join()方法所得字符串相同,数组元素之间以逗号分隔。

数组元素的增删操作

以下是关于增删数组元素的方法说明。

1、pop()

功能:用于删除并返回数组的最后一个元素。

语法:arrayObject.pop()

pop()方法会删除arrayObject的最后一个元素,使数组长度减1,并返回被删除元素的值。若数组为空,则不改变数组内容,并返回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

2、push()

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

语法:arrayObject.push(newelement1, newelement2, ..., newelementX)

该方法直接修改原arrayObject,不创建新数组。push()与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.push("James") + "<br />")

document.write(arr)

</script>

运行结果:


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

3、shift()

功能:用于删除并返回数组的第一个元素。

语法:arrayObject.shift()

若数组为空,shift()不执行任何操作并返回undefined。该方法直接修改原arrayObject,不创建新数组。

示例代码:


<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

4、unshift()

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

语法:arrayObject.unshift(newelement1, newelement2, ..., newelementX)

unshift()将参数插入arrayObject头部,原有元素依次向后移动以腾出空间。第一个参数成为新元素0,第二个成为新元素1,依此类推。

注意:该方法直接修改原数组,不创建新数组。此外,unshift()在Internet Explorer浏览器中可能存在兼容性问题。

示例代码:


<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

5、slice()

功能:从已有数组中返回选定的元素子集。

语法:arrayObject.slice(start, end)

start

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

end

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

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

该方法不修改原数组,而是返回子数组。若需删除数组中一段元素,应使用splice()方法。


<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

6、splice()

功能:用于向/从数组中添加或删除项目,并返回被删除的项目。

语法:arrayObject.splice(index, howmany, item1, ..., itemX)

index

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

howmany

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

item1, ..., itemX

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

该方法会直接修改原始数组。

示例代码:


<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

数组排序与反转

以下是数组元素排序方法的说明。

1、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

2、sort()

功能:用于对数组元素进行排序。

语法:arrayObject.sort(sortby)

sortby:可选参数,规定排序顺序的比较函数,必须为函数类型。

相较于其他方法,此方法逻辑稍复杂。

若调用时未使用参数,数组元素将按字符编码顺序(字母顺序)进行排序。

若需按其他标准排序,需提供比较函数。该函数接收两个参数,返回用于说明两者相对顺序的数字。比较函数应包含两个参数a和b,返回值规则如下:

若a小于b,排序后a应排在b之前,则返回小于0的值。

若a等于b,则返回0。

若a大于b,排序后a应排在b之后,则返回大于0的值。


<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

上述示例实现了数组元素的从小到大排序。若需实现从大到小排序,只需将sortNumber函数中的a-b改为b-a即可。


<script type="text/javascript">

function sortNumber(a,b)

{

return b - a;

}

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
1000,40,25,10,5,1

数组对象属性说明

补充说明:

数组对象的属性介绍:

属性

描述

constructor

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

length

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

prototype

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

以下示例展示了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

length属性用于设置或返回数组中元素的数目。length属性值始终比数组中最后一个元素的下标大1。对于从0开始连续存储元素的常规数组,length属性声明了数组的元素个数。设置length属性可改变数组大小:若设置的值小于当前值,数组将被截断,尾部元素丢失;若设置的值大于当前值,数组将增大,新增元素值为undefined。

获取数组长度语法:arrayObject.length

以上关于JavaScript基础进阶之数组方法总结的内容即为全部分享,希望能对读者有所帮助,欢迎继续支持本站。

作者最新文章