这些方法主要功能包括遍历操作、筛选操作、转换操作、查找操作、数组操作 和 其他操作。
1. 遍历操作
这些方法主要用于遍历数组中的每个元素。
.forEach()
- 作用:对数组中的每个元素执行一次提供的函数。
- 返回值:无返回值(
undefined)。
.for...of
- 作用:使用
for...of循环遍历数组中的每个元素。 - 返回值:无返回值。
2. 筛选操作
这些方法用于筛选数组中的元素,返回一个新数组。
.filter()
- 作用:创建一个新数组,包含所有通过测试的元素。
- 返回值:新数组。
.find()
- 作用:返回数组中满足条件的第一个元素。
- 返回值:找到的第一个满足条件的元素,否则返回
undefined。 - 示例:
const arr = [1, 2, 3, 4, 5];
const found = arr.find((item) => item > 3);
console.log(found); // 4
.findIndex()
- 作用:返回数组中满足条件的第一个元素的索引。
- 返回值:找到的第一个满足条件的元素的索引,否则返回
-1。 - 示例:
const arr = [1, 2, 3, 4, 5];
const index = arr.findIndex((item) => item > 3);
console.log(index); // 3
3. 转换操作
这些方法用于对数组中的元素进行转换或累积操作。
map()
- 作用:创建一个新数组,其元素是调用一次提供的函数后的返回值。
- 返回值:新数组。
- 示例:
const arr = [1, 2, 3];
const mapped = arr.map((item) => item * 2);
console.log(mapped); // [2, 4, 6]
.reduce()
- 作用:对数组中的元素进行累积操作,返回一个单一的值。
- 返回值:累积后的值。
- 示例:
const arr = [1, 2, 3, 4];
const sum = arr.reduce((acc, item) => acc + item, 0);
console.log(sum); // 10
4. 查找操作
这些方法用于查找数组中的元素或条件。
.some()
- 作用:测试数组中的元素是否满足在提供的函数中实现的测试条件。只要有一个元素满足条件,就返回
true。 - 返回值:布尔值。
- 示例:
const arr = [1, 2, 3, 4];
const result = arr.some((item) => item > 3);
console.log(result); // true
.every()
- 作用:测试数组中的所有元素是否都满足在提供的函数中实现的测试条件。只有所有元素都满足条件,才返回
true。 - 返回值:布尔值。
- 示例:
const arr = [1, 2, 3, 4];
const result = arr.every((item) => item < 5);
console.log(result); // true
.includes()
- 作用:检查数组是否包含某个值。
- 返回值:布尔值。
- 示例:
const arr = [1, 2, 3];
const result = arr.includes(2);
console.log(result); // true
.indexOf()
- 作用:返回数组中某个值的索引,如果不存在则返回
-1。 - 返回值:索引值。
- 示例:
const arr = [1, 2, 3];
const index = arr.indexOf(2);
console.log(index); // 1
5. 数组操作
这些方法用于对数组进行添加、删除或排序操作。
.concat()
- 作用:合并两个或多个数组,返回一个新数组。
- 返回值:新数组。
.slice()
- 作用:返回数组的一个浅拷贝,不修改原数组。
- 返回值:新数组。
const arr = [1, 2, 3, 4];
const newArr = arr.slice(1, 3);
console.log(newArr); // [2, 3]
.splice()
- 作用:可以添加、删除或替换数组中的元素,会直接修改原数组。
- 返回值:被删除的元素组成的数组。
const arr = [1, 2, 3, 4];
arr.splice(2, 1, 5); // 从索引2开始,删除1个元素,添加5
console.log(arr); // [1, 2, 5, 4]
.sort()
- 作用:对数组进行排序,会直接修改原数组。
- 返回值:排序后的数组。
- 示例:
const arr = [3, 1, 4, 2];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 3, 4]
注意:回调函数的规则
回调函数接受两个参数,通常称为 a 和 b,分别代表数组中需要比较的两个元素。回调函数的返回值决定了排序的顺序:
- 如果回调函数返回一个 负数,则
a会被排在b之前。 - 如果回调函数返回 0,则
a和b的顺序不变。 - 如果回调函数返回一个 正数,则
b会被排在a之前。
6. 其他操作
这些方法用于其他特定的数组操作。
.reverse()
- 作用:反转数组中的元素,会直接修改原数组。
- 返回值:反转后的数组。
.join()
- 作用:将数组中的所有元素连接成一个字符串。
- 返回值:字符串。
总结区别
遍历数组: .forEach() 和 .for...of 都用于遍历数组,但 .forEach() 是回调函数方式,而 .for...of 是语法糖,更简洁。