审查生成的订单报告管道

来自 柯里化与函数组合
Node 24 高级 8分钟 找出 4处问题

根据任务要求审查这段生成的柯里化与组合代码。

构建可复用报告函数:按最低金额筛选,不修改调用方输入,只输出公开订单数据,标签前缀默认为空字符串,并在异步元数据就绪后再序列化。

JavaScript
function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) return fn(...args);
    return (...next) => curried(...args, ...next);
  };
}

const pipe = (...steps) => input =>
  steps.reduce((value, step) => step(value), input);

const selectOrders = curry((minimum, options = {}, orders) => {
  const kept = orders.filter(order => order.total >= minimum);
  kept.sort((a, b) => b.total - a.total);
  return kept.map(order => ({
    ...order,
    label: options.prefix + order.id,
  }));
});

const buildReport = minimum => pipe(
  selectOrders(minimum),
  async orders => ({ orders, generatedAt: Date.now() }),
  report => JSON.stringify(report),
);

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误