一、数组的基本概念
数组是一种特殊的对象,用于存储多个值。在 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]