Skip to content

createUniqueLabeledName ​

在已有名称集合中分配不冲突的显示名(base、base 2、base 3 …)。

函数签名 ​

typescript
function createUniqueLabeledName(options: CreateUniqueLabeledNameOptions): string

interface CreateUniqueLabeledNameOptions {
  existingNames: readonly string[]
  base: string
}

参数 ​

参数名类型必填说明
options.basestring是期望使用的基础名称
options.existingNamesreadonly string[]是已占用的名称列表

返回值 ​

类型说明
string不与 existingNames 冲突的唯一名称

工作原理 ​

  1. 将 existingNames 放入 Set 做 O(1) 查找。
  2. 若 base 未被占用,直接返回 base。
  3. 否则从 2 起递增,尝试 ${base} ${index},返回第一个未占用的名称。