审查生成的派单分批代码

来自 算法复杂度
Node 24 进阶 10分钟 找出 3处问题

请在这段生成代码处理无界导入前进行审查。

按 ID 去重订单,保留数值最小的优先级,依次按优先级和 ID 排序,再返回批次,并且不修改调用方拥有的数据。

JavaScript
function buildDispatchBatches(orders, batchSize) {
  const unique = [];
  for (const order of orders) {
    const existingIndex = unique.findIndex((item) => item.id === order.id);
    if (existingIndex === -1) {
      unique.push({ ...order });
    } else if (order.priority < unique[existingIndex].priority) {
      unique[existingIndex] = { ...order };
    }
  }
  unique.sort((left, right) => left.priority - right.priority);
  const batches = [];
  while (unique.length > 0) {
    batches.push(unique.splice(0, batchSize));
  }
  return batches;
}

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

在试验场中打开
报告错误