ES6 数组新增特性(第三篇):`Array` 新增迭代方法

67 阅读2分钟

ES6 为数组提供了一系列新的迭代方法,这些方法增强了数组的处理能力,特别是在处理需要遍历数组元素的场景中。这些方法包括 forEach(), map(), filter(), reduce(), some()every() 等。它们为数组操作提供了更多的灵活性和表达力。

新增的迭代方法

1. forEach()

对数组的每个元素执行一次提供的函数。

let arr = [1, 2, 3];
arr.forEach(value => console.log(value));
// 输出:
// 1
// 2
// 3

2. map()

创建一个新数组,其结果是该数组中的每个元素调用一次提供的函数后的返回值。

let arr = [1, 2, 3];
let mapped = arr.map(value => value * 2);
console.log(mapped); // 输出: [2, 4, 6]

3. filter()

创建一个新数组,包含通过所提供函数实现的测试的所有元素。

let arr = [1, 2, 3, 4];
let filtered = arr.filter(value => value % 2 === 0);
console.log(filtered); // 输出: [2, 4]

4. reduce()

对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。

let arr = [1, 2, 3, 4];
let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 10

5. some()every()

  • some():测试数组中是否有元素通过由提供的函数实现的测试。
  • every():测试是否所有元素都通过由提供的函数实现的测试。
let arr = [1, 2, 3, 4];

console.log(arr.some(value => value > 2)); // 输出: true
console.log(arr.every(value => value > 2)); // 输出: false

使用场景

  • forEach():当你需要遍历数组,并对每个元素执行操作时。
  • map():适用于将数组中的每个元素映射到一个新的元素上。
  • filter():当你需要从数组中选择符合特定条件的元素时。
  • reduce():适用于将数组元素组合成一个单一的值。
  • some()every():用于测试数组中的元素是否满足特定条件。

注意事项

  • 这些方法都不会修改原数组,而是返回一个新数组或值。
  • 在箭头函数中使用这些方法可以使代码更加简洁。

ES6 中新增的这些数组迭代方法提供了强大的工具集,使得处理和转换数组数据变得更加简单和高效。在接下来的文章中,我们将继续探索 ES6 中其他关于数组的新特性和方法。