详解JavaScript中数组的相关知识

山海之间
山海之间
发布时间:2026-10-13| 6人浏览过
原创

深入了解JavaScript中数组的声明方式、元素访问机制,以及利用push、splice等API进行高效的数据增删改操作,并掌握slice与concat实现数组副本以避免引用冲突。

数组的创建与特性

在JavaScript中,数组是用于存储有序数据的集合。声明数组主要有以下几种方式:

  • 简写模式(推荐):使用方括号直接初始化,如 var arr = [];
  • 构造函数模式:使用 new Array() 创建一个空数组
  • 指定长度模式:使用 new Array(length) 创建具有指定长度的数组

重要提示:

  1. 即使指定了初始长度,数组的实际长度也是可变的。你可以向超出初始长度索引的位置添加元素,数组长度会自动扩展。
  2. JavaScript是弱类型语言,同一数组中可以混合存储不同类型的元素(如数字、字符串等)。

数组元素的访问与遍历

JavaScript数组的索引从0开始。可以通过“数组名+下标”的方式直接访问特定元素。

第1步:访问元素

例如,访问数组 [1, 2, 3] 的第一个元素:

var arr = [1, 2, 3];
console.log(arr[0]); // 输出 1
console.log(arr[1]); // 输出 2

第2步:高效遍历数组

推荐使用标准的 for 循环遍历数组,而非 for...in,因为后者可能遍历到非索引属性或顺序不定。

优化技巧: 在循环前缓存数组长度,避免每次迭代都重新查询 .length 属性,在处理超大数组时可提升性能。

var arr = [1, 2, 3, 4, 'text'];
for (var i = 0, len = arr.length; i < len; i++) {
    console.log(arr[i]);
}

数组元素的增加

向数组中添加元素常用的方法有 push、unshift 和 splice。

第1步:尾部添加 push

push 方法将元素添加到数组末尾,并返回新长度。

var arr = [];
arr.push(1);
arr.push(2);
// 此时 arr 为 [1, 2]

第2步:头部添加 unshift

unshift 方法将元素添加到数组开头,原有元素索引自动后移。

var arr = [];
arr.unshift(3);
arr.unshift(2);
arr.unshift(1);
// 执行结果顺序为 1, 2, 3

第3步:指定位置插入 splice

splice 是最灵活的增删方法,原型为:array.splice(index, howMany, element...)。

  • index:开始操作的索引位置。
  • howMany:要删除的元素个数。若仅添加不删除,此参数设为0。
  • element...:要添加的新元素列表。

示例:在索引1处插入7, 8, 9,不删除原元素:

var arr = [1, 2, 3, 4];
arr.splice(1, 0, 7, 8, 9);
// 结果: [1, 7, 8, 9, 2, 3, 4]

数组元素的删除

删除元素主要使用 pop、shift 和 splice。

第1步:尾部移除 pop

pop 移除并返回最后一个元素。配合 push 可实现栈结构(先进后出)。

var arr = [1, 2, 3];
arr.pop(); // 移除3,返回3
// 此时 arr 为 [1, 2]

第2步:头部移除 shift

shift 移除并返回第一个元素,其余元素前移。由于涉及大量元素位移,时间复杂度为O(n),在频繁操作头部时效率较低。

第3步:指定范围删除 splice

当 splice 的第二个参数(删除数量)大于0时,则执行删除操作。

var arr = [1, 2, 3, 4, 5];
arr.splice(1, 2); // 从索引1开始,删除2个元素
// 移除2和3,结果: [1, 4, 5]

数组的拷贝与截取

注意引用传递风险: 简单的赋值 var arr2 = arr1; 只是复制了内存地址。修改 arr2 会直接影响 arr1。若需独立副本,应使用以下方法:

第1步:使用 slice 截取/拷贝

slice(begin, end) 返回从 begin 到 end(不包含 end)的浅拷贝。若不传参,则复制整个数组。

var arr1 = [1, 2, 3, 4];
var arr2 = arr1.slice(); // 创建独立副本
arr2[2] = 100;
// arr1 仍为 [1, 2, 3, 4],不受影响

第2步:使用 concat 合并/拷贝

concat() 用于合并数组。如果调用时未传参,它将返回调用对象的一个完整浅拷贝。

var alpha = ["a", "b"];
var combined = alpha.concat([1, 2]);
// 结果: ["a", "b", 1, 2]

// 单独拷贝:
var copy = alpha.concat();

以上就是JavaScript数组基础知识的详细内容,更多关于JavaScript数组操作的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。