方法链允许一系列函数

发布: (2026年2月4日 GMT+8 11:49)
2 min read
原文: Dev.to

Source: Dev.to

JavaScript 中的方法链

方法链指在同一个对象或结果上依次调用多个方法。这种模式在数组方法(如 filtermapreduce 等)中很常见,因为每个方法都会返回一个新的数组或值,从而让下一个方法可以基于该结果继续操作。

示例:链式调用数组方法

const numbers = [1, 2, 3, 4, 5];

const result = numbers
  .filter(num => num % 2 === 0) // Filter even numbers
  .map(num => num * 2) // Double each remaining number
  .reduce((acc, num) => acc + num, 0); // Sum up the doubled numbers

console.log(result); // Outputs 18 (2*2 + 4*2 + 5*2)

工作原理

Filter

创建一个只包含原数组中偶数的新数组。

Map

将过滤后的数组中的每个数字翻倍,生成另一个新数组。

Reduce

对映射后的数组中的所有翻倍数字求和,得到一个单一的值(本例中为 18)。

示例:对对象数组进行链式调用

let cart = [
  { name: "Drink", price: 3.12 },
  { name: "Steak", price: 45.15 },
  { name: "Drink", price: 11.01 },
];

const drinkTotal = cart
  .filter(item => item.name === "Drink")
  .map(item => item.price)
  .reduce((total, price) => total + price, 0)
  .toFixed(2);

console.log(`Total Drink Cost $${drinkTotal}`); // Total Drink $14.13

方法链的好处

  • 可读性提升 – 数据转换的流程清晰且线性。
  • 减少中间变量的需求 – 每一步都会返回一个值供下一步使用。
  • 更具声明性的代码 – 表达 应该做什么 而不是 如何管理临时状态

祝编码愉快! 🔥

Back to Blog

相关文章

阅读更多 »

JavaScript 中的柯里化

当我第一次学习 JavaScript 时,像 currying 这样的概念感觉既令人困惑又没有必要——直到我真的开始使用它。什么是 Currying?Currying 是一种函数…