1. 数组创建
- Array.of(...): 创建一个新的数组实例,其中包含传入的所有元素。
- Array.from(arrayLike, mapFn, thisArg): 从类数组或可迭代对象创建一个新的数组实例。
2. 访问和修改
- length: 返回或设置数组的长度。
- at(index): 返回数组中指定位置的元素,负数表示从数组末尾倒数的位置。
3. 添加和删除元素
- push(...elements): 向数组末尾添加一个或多个元素。
- pop(): 移除并返回数组末尾的元素。
- unshift(...elements): 向数组开头添加一个或多个元素。
- shift(): 移除并返回数组开头的元素。
- splice(start, deleteCount, ...items): 从数组中添加或删除元素。
4. 查找元素
- indexOf(element, fromIndex): 返回数组中首次出现的指定元素的索引,未找到则返回 -1。
- lastIndexOf(element, fromIndex): 返回数组中最后一次出现的指定元素的索引,未找到则返回 -1。
- find(callback, thisArg): 返回数组中第一个符合条件的元素,找不到则返回 undefined。
- findIndex(callback, thisArg): 返回数组中第一个符合条件的元素的索引,找不到则返回 -1。
- includes(element, fromIndex): 判断数组是否包含指定元素,返回布尔值。
- some(callback, thisArg): 判断数组中是否至少有一个元素符合条件,返回布尔值。
- every(callback, thisArg): 判断数组中是否所有元素都符合条件,返回布尔值。
5. 遍历数组
- forEach(callback, thisArg): 对数组的每个元素执行一次回调函数。
- map(callback, thisArg): 返回一个新数组,其中每个元素是回调函数的结果。
- filter(callback, thisArg): 返回一个新数组,其中包含所有通过测试的元素。
- reduce(callback, initialValue): 对数组的每个元素执行回调函数,返回单一值。
- reduceRight(callback, initialValue): 从数组的末尾开始对每个元素执行回调函数,返回单一值。
- flat(depth): 将多维数组“拍平”,可以指定拍平的深度。
- flatMap(callback, thisArg): 对每个元素应用回调函数,然后将结果“拍平”至一维数组。
6. 变换数组
- concat(...arrays): 合并两个或多个数组。
- slice(begin, end): 返回数组的一个片段(浅拷贝),包含 begin 索引到 end 索引(不包括 end 索引)的元素。
- join(separator): 将数组的所有元素连接成一个字符串。
- sort(compareFunction): 对数组进行排序,可以指定排序函数。
- reverse(): 颠倒数组中元素的顺序。
7. 其他
- copyWithin(target, start, end): 将数组的指定部分复制到另一个位置。
- fill(value, start, end): 用指定的值填充数组的部分或全部元素。
- from(iterable, mapFn, thisArg): 从类数组或可迭代对象创建数组,可以应用映射函数。
- toString(): 将数组转换为字符串。
- toLocaleString(): 将数组转换为本地化的字符串。
8. ES2022+ 方法
- at(index): 返回数组中指定位置的元素,可以使用负数索引。
- groupBy(callback): 将数组中的元素按回调函数的返回值分组(需要 polyfill)。
- groupByToMap(callback): 与 groupBy 类似,但返回的是 Map(需要 polyfill)。