1. Set
- Set 是一种数据结构,用于存储唯一值(不允许重复)。它常用于数组去重。
- 示例:数组去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)]; // 去重
console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5]
- 特点:
自动去重。
可以存储任何类型的值(原始值或对象引用)。
2. some
- some 方法用于检查数组中是否至少有一个元素满足指定条件。如果找到满足条件的元素,立即返回 true,否则返回 false。
- 示例:检查数组中是否有偶数
const arr = [1, 3, 5, 7, 8];
const hasEven = arr.some(num => num % 2 === 0);
console.log(hasEven); // 输出: true
- 特点:
一旦找到满足条件的元素,立即停止遍历。
3. find
- find 方法用于查找数组中第一个满足指定条件的元素。如果找到,返回该元素;否则返回 undefined。
- 示例:查找第一个大于 5 的元素
const arr = [1, 3, 5, 7, 9];
const result = arr.find(num => num > 5);
console.log(result); // 输出: 7
- 特点:
只返回第一个满足条件的元素。
4. findIndex
- findIndex 方法用于查找数组中第一个满足指定条件的元素的索引。如果找到,返回索引;否则返回 -1。
- 示例:查找第一个大于 5 的元素的索引
const arr = [1, 3, 5, 7, 9];
const index = arr.findIndex(num => num > 5);
console.log(index); // 输出: 3
- 特点:
只返回第一个满足条件的元素的索引。
5. reduce
- reduce 方法用于将数组中的所有元素通过回调函数累加为一个值(可以是任意类型)。
- 示例:计算数组元素的总和
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((acc, num) => acc + num, 0);
console.log(sum); // 输出: 15
- 示例:统计数组中每个元素出现的次数
const arr = ['a', 'b', 'a', 'c', 'b'];
const count = arr.reduce((acc, item) => {
acc[item] = (acc[item] || 0) + 1;
return acc;
}, {});
console.log(count); // 输出: { a: 2, b: 2, c: 1 }
- 特点:
可以灵活地实现累加、统计、分组等操作。
需要提供初始值 initialValue。
6. forEach
- forEach 方法用于遍历数组中的每个元素,并对每个元素执行指定的操作。
- 示例:打印数组中的每个元素
const arr = [1, 2, 3, 4, 5];
arr.forEach(num => console.log(num));
// 输出:
// 1
// 2
// 3
// 4
// 5
- 特点:
没有返回值。
无法中断遍历(即使使用 return 或 break)。
7. map
- 对数组中的每个元素执行操作,并返回一个新数组。
- 示例:
const arr = [1, 2, 3];
const doubled = arr.map(num => num * 2);
console.log(doubled); // 输出: [2, 4, 6]
8. filter
- 过滤数组中满足条件的元素,并返回一个新数组。
- 示例:
const arr = [1, 2, 3, 4, 5];
const evens = arr.filter(num => num % 2 === 0);
console.log(evens); // 输出: [2, 4]
9. every
- 检查数组中的所有元素是否都满足指定条件。
- 示例:
const arr = [2, 4, 6, 8];
const allEven = arr.every(num => num % 2 === 0);
console.log(allEven); // 输出: true
总结
image.png