数组有哪些原生方法?

23 阅读2分钟

一、修改原数组的方法(变异方法)

1. 增删元素

  • push() - 末尾添加元素
  • pop() - 末尾删除元素
  • shift() - 开头删除元素
  • unshift() - 开头添加元素
  • splice() - 在指定位置添加/删除元素

2. 排序和反转

  • reverse() - 反转数组顺序
  • sort() - 数组排序

3. 填充和复制

  • fill() - 填充数组元素
  • copyWithin() - 复制数组内部元素

二、不修改原数组的方法

1. 连接和切片

  • concat() - 合并数组
  • slice() - 提取数组片段

2. 搜索和查找

  • indexOf() - 查找元素首次出现位置
  • lastIndexOf() - 查找元素最后出现位置
  • includes() - 判断是否包含某元素
  • find() - 查找第一个符合条件的元素
  • findIndex() - 查找第一个符合条件的元素索引

3. 转换和字符串化

  • join() - 数组转字符串
  • toString() - 转换为字符串
  • toLocaleString() - 本地化字符串

三、迭代方法

1. 遍历方法

  • forEach() - 遍历数组

2. 映射和过滤

  • map() - 映射新数组
  • filter() - 过滤数组
  • flat() - 数组扁平化
  • flatMap() - 映射后扁平化

3. 归约方法

  • reduce() - 从左到右归约
  • reduceRight() - 从右到左归约

4. 测试方法

  • every() - 所有元素都满足条件
  • some() - 至少一个元素满足条件

四、静态方法

  • Array.isArray() - 判断是否为数组
  • Array.from() - 从类数组对象创建数组
  • Array.of() - 创建包含任意数量元素的数组

五、迭代器方法

  • keys() - 返回键的迭代器
  • values() - 返回值的迭代器
  • entries() - 返回键值对的迭代器

示例代码:

// 常用方法示例
const arr = [1, 2, 3];

// 添加/删除
arr.push(4); // [1, 2, 3, 4]
arr.pop();   // [1, 2, 3]

// 映射和过滤
const doubled = arr.map(x => x * 2); // [2, 4, 6]
const filtered = arr.filter(x => x > 1); // [2, 3]

// 查找
const found = arr.find(x => x > 2); // 3
const index = arr.indexOf(2); // 1

// 归约
const sum = arr.reduce((acc, cur) => acc + cur, 0); // 6

这些方法使得数组操作变得非常方便和强大。根据需求选择合适的方法可以写出更简洁高效的代码。