切换主题
Array(数组)
创建数组
1. 数组字面量
javascript
const fruits = ['apple', 'banana', 'orange'];
const numbers = [1, 2, 3, 4, 5];
const mixed = [1, 'hello', true, { name: 'John' }];
2. Array 构造函数
javascript
const arr1 = new Array(3); // [undefined, undefined, undefined]
const arr2 = new Array(1, 2, 3); // [1, 2, 3]
3. Array.from()
javascript
const str = 'hello';
const arr = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
const set = new Set([1, 2, 3]);
const arr2 = Array.from(set); // [1, 2, 3]
数组方法
1. 修改数组
push()
: 在数组末尾添加元素pop()
: 删除并返回数组最后一个元素shift()
: 删除并返回数组第一个元素unshift()
: 在数组开头添加元素splice()
: 删除、替换或添加元素reverse()
: 反转数组sort()
: 排序数组
2. 访问数组
indexOf()
: 查找元素首次出现的位置lastIndexOf()
: 查找元素最后出现的位置includes()
: 检查数组是否包含某个元素find()
: 返回满足条件的第一个元素findIndex()
: 返回满足条件的第一个元素的索引
3. 遍历数组
forEach()
: 遍历数组元素map()
: 映射数组元素filter()
: 过滤数组元素reduce()
: 归并数组元素some()
: 检查是否有元素满足条件every()
: 检查是否所有元素都满足条件
4. 数组转换
join()
: 将数组转换为字符串split()
: 将字符串转换为数组toString()
: 将数组转换为字符串toLocaleString()
: 将数组转换为本地化字符串
高级用法
1. 数组解构
javascript
const [first, second, ...rest] = [1, 2, 3, 4, 5];
console.log(first); // 1
console.log(second); // 2
console.log(rest); // [3, 4, 5]
2. 展开运算符
javascript
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
3. 数组方法链式调用
javascript
const numbers = [1, 2, 3, 4, 5];
const result = numbers
.filter(n => n > 2)
.map(n => n * 2)
.reduce((sum, n) => sum + n, 0);
性能考虑
- 使用
push()
和pop()
而不是unshift()
和shift()
- 避免频繁创建新数组
- 使用
Set
去重 - 使用
TypedArray
处理大量数值数据 - 考虑使用
ArrayBuffer
处理二进制数据
常见问题
- 数组浅拷贝与深拷贝
- 数组去重方法
- 数组排序稳定性
- 稀疏数组的处理
- 数组方法对原数组的影响