JavaScript Array 对象常用方法详解

作者:青柠

时间:2026-10-25

浏览:400

本文系统梳理了JavaScript中Array对象的核心操作。从数组的三种定义方式入手,详细解析了concat、join、pop、push、reverse、shift、slice、sort、splice、unshift及toString等内置方法的功能与用法,结合代码示例说明引用类型与值类型的处理差异,帮助开发者掌握数组的高效操作技巧。

文章目录

JavaScript Array 对象概述与定义

在研究脚本库prototype.js时,我们发现其中部分方法使用频率较低,但某些实现堪称经典。随着脚本库体积日益庞大,掌握基础且核心的功能显得尤为重要。接下来继续JS入门教程,本文将重点介绍Array数组对象的使用方法。



首先,我们来看数组的基本定义方式。



具体代码示例如下:

 
var arrayObj = new Array()
var arrayObj = new Array([size])
var arrayObj = new Array([element0[, element1[, [, elementN]]]])

上述代码中,

Array

arrayObj为数组变量的名称。


size参数指定数组大小。由于数组索引从0开始,创建的元素索引范围将从0到

size

-1。


        element0,...,elementN这将创建具有 n + 1 个元素的长度为 n + 1 的数组。使用该语法时必须有一个以上元素。

若仅向Array构造函数传递一个数字参数,该参数必须是一个无符号32位整数(约40亿),它将被用作数组的长度。如果该数值小于0或非整数,将触发运行时错误。

若传递给Array构造函数的单个参数不是数值,则length属性被设为1,且该唯一元素即为传入的参数值。

JavaScript数组属于稀疏数组(解析数组)。即使为数组分配了多个元素,实际上只有包含数据的元素才占用内存空间,这种机制有助于减少内存消耗。

数组连接与字符串转换方法

Array 对象拥有 constructor、length 和 prototype 三个内置属性。关于 constructor、prototype 及 arguments 等对象属性的详细讨论将在专门文章中展开,此处略述。下文重点介绍 Array 内置方法,因其使用频率极高,故至关重要。 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);
} 

join方法

:将数组中的项,按特定的分隔符转化为字符串并返回,默认分隔符为逗号,例子:


代码如下:

function JoinDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");
//返回:"0-1-2-3-4"
return(b);
}

pop方法:

数组元素的增删与反转操作

移除数组中的最后一个元素,并返回该元素。如果该数组为空则返回undefined。



  push方法:

将以新元素出现的顺序添加这些元素

,

如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用

concat

方法。

reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

代码如下:

 
function ReverseDemo(){
var a, l; // 声明变量。
a = new Array(0,1,2,3,4); // 创建数组并赋值。
l = a.reverse(); // 反转数组的内容。
//返回:l=[4,3,2,1,0]
return(l); // 返回结果数组。
} 

shift 方法

数组切片与排序技巧

可移除数组中的第一个元素并返回该元素。



  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)

sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:



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


零,如果两个参数相等。


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


代码如下:

 
function SortDemo(){
var a, l; // 声明变量。
a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
l = a.sort(); // 排序数组。
return(l); // 返回排序的数组。
} 

splice 方法

数组高级操作与总结

可以移除从

start

位置开始的指定个数的元素并插入新元素,从而修改

arrayObj

。返回值是一个由所移除的元素组成的新

Array 

对象。 格式如下:


代码如下:

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

  toLocaleString 方法

将在Date对象中讲解,一般这个方法只是返回给用户,不作为代码中计算。



  unshift 方法

将这些元素插入到一个数组的开始部分,所以这些元素将以参数序列中的次序出现在数组中。格式如下:


代码如下:

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

  valueOf方法&toString()

数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与

Array.toString

和

Array.join

方法相同。



到这里Array对象的所有东东也就差不多了,我把他们整理出来一个是为了能够巩固我的脚本知识,再次声明很多的例子都是前人留下来的,如果对你有不舒服的感觉请见谅!

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章