请在这段生成代码处理无界导入前进行审查。
按 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;
}
生成代码仅作示例,不代表任何特定模型