JavaScript Array 对象常用操作方法详解

作者:拾光

时间:2026-10-28

浏览:502

本文详细解析 JavaScript 中 Array 对象的十个核心操作方法。涵盖 push 与 pop 的栈式操作、shift 与 unshift 的队列式操作,以及 concat 数组拼接、join 字符串转换、sort 排序、slice 截取和 splice 增删改等常用功能。通过具体代码示例,展示各方法的参数定义、返回值及实际应用场景,帮助开发者高效处理数组数据。

文章目录
push 方法

push 方法:添加元素到数组末尾

该方法用于向数组末尾添加一个新元素,并返回添加元素后数组的新长度。


arrayObj.push([item1 [item2 [. . . [itemN ]]]])


参数

arrayObj 为必选参数,指代一个 Array 对象。


item1, item2, ..., itemN 为可选参数,代表要添加到数组中的新元素。



说明

push 方法会按照参数中元素出现的顺序依次将它们添加到数组末尾。若某个参数本身是数组,则该数组将作为单个元素被添加。如需合并多个数组,建议使用 concat 方法。



示例

<script type="text/javascript">


var arrayObj = new Array(0,1,2,3,4);


arrayObj.push(5,6,7,8,"枫岩","CnLei");


alert(arrayObj[arrayObj.length-1]);


</script>


要求

版本 5.5



pop 方法

pop 方法:移除并返回最后一个元素

该方法用于移除并返回数组的最后一个元素。

arrayObj.pop()

arrayObj 为必选参数,指代一个 Array 对象。



说明

若数组为空,该方法将返回 undefined。



示例

<script type="text/javascript">


var arrayObj = new Array(0,1,2,3,4);


alert(arrayObj.pop());


</script>


要求

版本 5.5



shift 方法

shift 方法:移除并返回第一个元素

该方法用于移除并返回数组的第一个元素。

arrayObj.shift( )


参数

arrayObj 为必选参数,指代一个 Array 对象。



说明

shift 方法的作用是移除数组中的第一个元素,并将其作为返回值返回。



要求

版本 5.5



unshift 方法

unshift 方法:在数组开头添加元素

该方法用于将指定元素插入到数组的起始位置,并返回修改后的数组。

arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]])


参数

arrayObj 为必选参数,指代一个 Array 对象。


item1, item2, ..., itemN 为可选参数,代表要插入到数组开头的新元素。



说明

unshift 方法会将这些元素插入到数组的开始部分,因此它们在数组中的顺序与参数列表中的顺序一致。



要求

版本 5.5



concat 方法 (Array)

concat 方法:合并多个数组

该方法用于返回一个新数组,该数组由原数组与一个或多个其他数组或值组合而成。

array1.concat([item1[, item2[, . . . [, itemN]]]])


参数

array1 为必选参数,指代其他所有要连接的 Array 对象。


item1, ..., itemN 为可选参数,代表要连接到 array1 末尾的其他项目。



说明

concat 方法返回一个新的 Array 对象,其中包含了 array1 与提供的任意其他项目的连接结果。



要添加的项目(item1 … itemN)会按照从左到右的顺序被添加到数组中。如果某一项是数组,则将其内容展开添加到 array1 的末尾;如果不是数组,则将其作为单个元素添加到数组末尾。



以下为从源数组复制元素到结果数组的示例说明:



对于从源数组复制到新数组的对象参数,复制后它们仍指向相同的对象。无论修改新数组还是源数组中的对象,都会影响另一个数组中的对应对象。


对于连接到新数组的数值或字符串,仅复制其值。修改一个数组中的值不会影响另一个数组中的值。


示例


下面这个例子说明了使用数组时 concat 方法的用法:


function ConcatArrayDemo(){


var a, b, c, d;


a = new Array(1,2,3);


b = "JScript";


c = new Array(42, "VBScript);


d = a.concat(b, c);


// 返回数组 [1, 2, 3, "JScript", 42, "VBScript"]


return(d);


}

要求

版本 3



join 方法

join 方法:数组转换为字符串

该方法用于返回一个字符串,其中包含数组的所有元素,元素之间由指定的分隔符分隔。

arrayObj.join(separator)


参数

arrayObj 为必选参数,指代一个 Array 对象。


separator 为必选参数,指代一个 String 对象,用作最终字符串中数组元素之间的分隔符。若省略此参数,数组元素之间默认使用逗号分隔。



说明

如果数组中包含未定义或 null 的元素,它们将被视为空字符串处理。



示例

下面这个例子说明了 join 方法的用法。


function JoinDemo(){


var a, b;


a = new Array(0,1,2,3,4);


b = a.join("-");


return(b);


}

要求

版本 2



sort 方法

sort 方法:数组排序

该方法用于返回一个经过排序的 Array 对象。

arrayobj.sort(sortfunction)


参数

arrayObj 为必选参数,指代任意 Array 对象。


sortFunction 为可选参数,指代用于确定元素顺序的函数名称。若省略此参数,元素将按 ASCII 字符顺序进行升序排列。



说明

sort 方法会对 Array 对象进行适当的排序;在执行过程中,不会创建新的 Array 对象。



如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:


(1)负值,如果所传递的第一个参数比第二个参数小。


(2)零,如果两个参数相等。


(3)正值,如果第一个参数比第二个参数大。



示例

<script type="text/javascript">


function AscSort(x, y) {


return x == y ? 0 : (x > y ? 1 : -1);


}

function DescSort(x, y) {


return x == y ? 0 : (x > y ? -1 : 1);


}

function RandomSort(x, y) {


return Math.floor(Math.random() * 2 - 1 );


}

var array = [2,4,3,5,1,6,9,0,8];



document.write("<p>正序:" + array.sort(AscSort) + "</p>");


document.write("<p>倒序:" + array.sort(DescSort) + "</p>");


document.write("<p>随机排序:" + array.sort(RandomSort) + "</p>");


document.write("<p>随机排序:" + array.sort(RandomSort) + "</p>");


document.write("<p>随机排序:" + array.sort(RandomSort) + "</p>");


</script>


要求

版本 2



slice 方法 (Array)

slice 方法:截取数组片段

该方法用于返回数组的一段指定内容。

arrayObj.slice(start, [end])


参数

arrayObj 为必选参数,指代一个 Array 对象。


start 为必选参数,指代 arrayObj 中所指定的部分的开始元素,从零开始计算的下标。


end 为可选参数,指代 arrayObj 中所指定的部分的结束元素,从零开始计算的下标。



说明

slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。



slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start 处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。



示例

在下面这个例子中,除了最后一个元素之外,myArray 中所有的元素都被复制到 newArray 中:

newArray = myArray.slice(0, -1)


splice 方法

splice 方法:增删改数组元素

该方法用于从数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,并返回所移除的元素组成的数组。

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])


参数

arrayObj 为必选参数,指代一个 Array 对象。


start 为必选参数,指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。


deleteCount 为必选参数,指要移除的元素的个数。


item1, item2, ..., itemN 为必选参数,指要在所移除元素的位置上插入的新元素。



说明

splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。



要求

版本 5.5



reverse 方法

reverse 方法:反转数组顺序

该方法用于返回一个元素顺序被反转的 Array 对象。

arrayObj.reverse( )


参数

arrayObj 为必选参数,该参数为 Array 对象。



说明

reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。


如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。



示例

下面这个例子说明了 reverse 方法的用法:


function ReverseDemo(){


var a, l; // 声明变量。


a = new Array(0,1,2,3,4); // 创建数组并赋值。


l = a.reverse(); // 反转数组的内容。


return(l); // 返回结果数组。


}

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章