在给定全名数组的情况下,高效地生成唯一的名字和姓氏组合可以通过以下步骤实现:
以下是一个示例的JavaScript代码实现:
function generateUniqueNames(fullNames) {
const names = [];
const surnames = [];
// 拆分全名数组为名字数组和姓氏数组
fullNames.forEach(fullName => {
const [name, surname] = fullName.split(' ');
names.push(name);
surnames.push(surname);
});
const uniqueNames = [];
const generatedNames = new Set();
// 生成唯一的名字和姓氏组合
for (let i = 0; i < names.length; i++) {
for (let j = 0; j < surnames.length; j++) {
const generatedName = names[i] + ' ' + surnames[j];
// 检查是否已存在相同的组合
if (!generatedNames.has(generatedName)) {
uniqueNames.push(generatedName);
generatedNames.add(generatedName);
}
}
}
return uniqueNames;
}
const fullNames = ['John Doe', 'Jane Smith', 'Michael Johnson'];
const uniqueNames = generateUniqueNames(fullNames);
console.log(uniqueNames);
这段代码将给定的全名数组['John Doe', 'Jane Smith', 'Michael Johnson']
拆分为名字数组['John', 'Jane', 'Michael']
和姓氏数组['Doe', 'Smith', 'Johnson']
。然后,使用两个循环嵌套的方式生成所有可能的名字和姓氏组合,并通过哈希表generatedNames
来确保生成的组合是唯一的。最后,将生成的唯一名字和姓氏组合存储到uniqueNames
数组中,并打印输出结果。
请注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云