在开发过程中,数组方法的使用十分频繁,但很容易因遗忘而影响效率。本文旨在提供一个系统性的回顾与整理,以便于查阅与复习。以下是数组相关方法的总结:
创建数组
- 字面量方式: 最常用的方法,例如`[1, 2, 3]`。
- 构造器: 例如`new Array()`,适用于创建空数组。
- ES6 Array.of(): 返回包含所有参数值的数组,如`Array.of(1, 2, 3)`。
- ES6 Array.from(): 转换类数组为真正的数组,例如`Array.from([1, 2, 3])`。
数组方法
改变原数组的方法(9个)
- splice(): 添加或删除数组元素。例如`arr.splice(1, 1, 'new element')`。
- sort(): 排序数组元素。需自定义比较函数,例如`arr.sort((a, b) => a - b)`。
- pop(): 删除数组最后一个元素。例如`arr.pop()`。
- shift(): 删除数组第一个元素。例如`arr.shift()`。
- push(): 向数组末尾添加元素。例如`arr.push('new element')`。
- unshift(): 向数组开头添加元素。例如`arr.unshift('new element')`。
- reverse(): 反转数组元素顺序。例如`arr.reverse()`。
- ES6: copyWithin(): 指定位置的成员复制到其他位置。例如`arr.copyWithin(2, 0, 3)`。
- ES6: fill(): 使用给定值填充数组。例如`arr.fill('value', start, end)`。
不改变原数组的方法(8个)
- slice(): 深拷贝数组元素。例如`arr.slice(0, 3)`。
- join(): 将数组转换为字符串。例如`arr.join(',')`。
- toLocaleString(): 将数组转换为字符串,按元素的`toLocaleString`方法连接。例如`arr.toLocaleString()`。
- toString(): 将数组转换为字符串,通常不推荐使用。例如`arr.toString()`。
- concat(): 合并数组。例如`arr.concat([1, 2])`。
- indexOf(): 查找元素在数组中的索引。例如`arr.indexOf('element')`。
- lastIndexOf(): 查找元素在数组中的最后一个索引。例如`arr.lastIndexOf('element')`。
- includes(): 检查数组是否包含指定元素。例如`arr.includes('element')`。
数组遍历方法(12个)
- forEach(): 按顺序执行回调函数。例如`arr.forEach(item => console.log(item))`。
- every(): 检测所有元素是否符合条件。例如`arr.every(item => item > 0)`。
- some(): 检查是否有元素满足条件。例如`arr.some(item => item > 0)`。
- filter(): 过滤元素,返回符合条件的新数组。例如`arr.filter(item => item > 0)`。
- map(): 处理每个元素并返回新数组。例如`arr.map(item => item * 2)`。
- reduce(): 合并数组元素到一个值。例如`arr.reduce((acc, curr) => acc + curr, 0)`。
- reduceRight(): 从右到左执行reduce操作。例如`arr.reduceRight((acc, curr) => acc + curr, 0)`。
- find(): 找到第一个满足条件的元素。例如`arr.find(item => item > 0)`。
- findIndex(): 找到第一个满足条件的元素的索引。例如`arr.findIndex(item => item > 0)`。
- keys(), values(), entries(): 遍历键名、键值或键名+键值。例如`for (const [key, value] of arr.entries()) { ... }`。
结语
本文概述了数组方法的全面总结,包含了创建数组、数组方法、遍历方法等。这些方法在开发过程中至关重要,理解和掌握它们能显著提高编程效率。若有任何不准确之处,欢迎指正。