JavaScript 数组介绍

99 阅读3分钟

一、数组的基本概念

数组是一种特殊的对象,用于存储多个值。在 JavaScript 中,数组使用方括号 [] 表示,并通过逗号分隔元素。数组中的每个元素都有一个唯一的索引,从 0 开始。例如:

let arr = [1, 2, 3, 4, 5];

在这个例子中,arr 是一个包含五个数字的数组,索引分别为 0 到 4。

二、数组的特性

1. 动态大小

JavaScript 数组具有动态大小的特点,可以根据需要随时添加或删除元素。这使得数组在处理不确定数量的数据时非常方便。

let arr = [];
arr.push(1); // 添加元素 1
arr.push(2); // 添加元素 2
console.log(arr); // 输出 [1, 2]

2. 异构性

JavaScript 数组可以存储不同类型的元素。这种灵活性使得数组在处理复杂数据结构时非常有用。

let arr = [1, 'hello', true];
console.log(arr); // 输出 [1, 'hello', true]

3. 高效访问

数组通过索引访问元素的时间复杂度为 O(1),这使得数组在需要快速访问元素的场景中表现出色。

let arr = [1, 2, 3, 4, 5];
console.log(arr[2]); // 输出 3

三、数组的常见操作

1. 创建数组

JavaScript 提供了多种创建数组的方法:

  • 使用字面量 []
let arr = [1, 2, 3];
  • 使用 Array 构造函数:
let arr = new Array(1, 2, 3);
  • 使用 Array.of 方法:
let arr = Array.of(1, 2, 3);

2. 添加元素

  • push 方法:在数组末尾添加一个或多个元素。
let arr = [1, 2, 3];
arr.push(4); // 输出 [1, 2, 3, 4]
  • unshift 方法:在数组开头添加一个或多个元素。
let arr = [1, 2, 3];
arr.unshift(0); // 输出 [0, 1, 2, 3]

3. 删除元素

  • pop 方法:删除并返回数组末尾的元素。
let arr = [1, 2, 3];
let lastElement = arr.pop(); // 输出 3
console.log(arr); // 输出 [1, 2]
  • shift 方法:删除并返回数组开头的元素。
let arr = [1, 2, 3];
let firstElement = arr.shift(); // 输出 1
console.log(arr); // 输出 [2, 3]

4. 访问元素

  • 通过索引访问元素:
let arr = [1, 2, 3];
console.log(arr[1]); // 输出 2
  • 使用 forEach 方法遍历数组:
let arr = [1, 2, 3];
arr.forEach(function(element) {
  console.log(element);
});
// 输出:
// 1
// 2
// 3

5. 查找元素

  • indexOf 方法:查找元素的索引,如果不存在则返回 -1。
let arr = [1, 2, 3];
console.log(arr.indexOf(2)); // 输出 1
console.log(arr.indexOf(4)); // 输出 -1
  • includes 方法:检查数组是否包含某个元素,返回布尔值。
let arr = [1, 2, 3];
console.log(arr.includes(2)); // 输出 true
console.log(arr.includes(4)); // 输出 false

6. 过滤和映射

  • filter 方法:根据条件过滤数组元素,返回新数组。
let arr = [1, 2, 3, 4, 5];
let evenNumbers = arr.filter(function(element) {
  return element % 2 === 0;
});
console.log(evenNumbers); // 输出 [2, 4]
  • map 方法:对数组元素进行操作,返回新数组。
let arr = [1, 2, 3, 4, 5];
let doubledNumbers = arr.map(function(element) {
  return element * 2;
});
console.log(doubledNumbers); // 输出 [2, 4, 6, 8, 10]

7. 排序

  • sort 方法:对数组元素进行排序,默认按字符串顺序排序。
let arr = [3, 1, 4, 2, 5];
arr.sort();
console.log(arr); // 输出 [1, 2, 3, 4, 5]

如果需要按数字大小排序,可以传入比较函数:

let arr = [3, 1, 4, 2, 5];
arr.sort(function(a, b) {
  return a - b;
});
console.log(arr); // 输出 [1, 2, 3, 4, 5]