审查生成的客户导入器

来自 Unicode 文本
Node 24 高级 12分钟 找出 4处问题

在导入客户姓名前审查这段生成代码。

严格解码 UTF-8 载荷,保留每个原始显示名称,执行 30 字素限制,按 NFC 比较键去重,按法语显示顺序排序,并把姓名作为文本渲染。

JavaScript
function importCustomers(payloads, container) {
  const customers = [];

  for (const payload of payloads) {
    const name = new TextDecoder().decode(payload);
    if (name.length > 30) throw new Error("name too long");
    const key = name.toLocaleLowerCase().normalize("NFKC");

    if (customers.some((customer) => customer.key === key)) continue;
    customers.push({ name: key, key });
  }

  const collator = new Intl.Collator();
  customers.sort((left, right) => collator.compare(left.name, right.name));

  container.innerHTML = customers
    .map((customer) => `<li>${customer.name}</li>`)
    .join("");

  return customers;
}

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

在试验场中打开
报告错误