在导入客户姓名前审查这段生成代码。
严格解码 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;
}
生成代码仅作示例,不代表任何特定模型