审查生成的订单规范化函数

来自 JavaScript 基础
Node 24 高级 6分钟 找出 5处问题

在这段生成的订单规范化函数处理 API 输入前,对它进行审查。

要求 quantity 为正整数,保留零折扣,只公开客户 id 与 name,不修改输入,并在允许列表很大时高效保留获准商品 SKU。

JavaScript
function prepareOrder(input, allowedSkus) {
  const quantity = Number(input.quantity);
  const { cardNumber, ...publicCustomer } = input.customer;

  const order = {
    id: String(input.id),
    quantity,
    discountPercent: input.discountPercent || 10,
    customer: publicCustomer,
    items: input.items.filter((item) => allowedSkus.includes(item.sku)),
  };

  order.customer.preferences.theme ??= 'system';

  if (quantity < 0) {
    throw new RangeError('quantity must be positive');
  }

  return order;
}

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

在试验场中打开
报告错误