JavaScript Array 对象常用方法详解
本文系统梳理了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]]]]) 上述代码中,
ArrayarrayObj为数组变量的名称。
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对象的所有东东也就差不多了,我把他们整理出来一个是为了能够巩固我的脚本知识,再次声明很多的例子都是前人留下来的,如果对你有不舒服的感觉请见谅!
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
