我正在尝试创建一个函数,该函数将生成一个符合元音和辅音模式的所有可能字母组合的数组。
例如,给定字符串“VCV”,其中V =元音,C =辅音,我想获得符合该模式的所有可能字母组合的列表。
['ABA','ABE','ABI','ABO','ABU','ACA','ACE',....]
有什么想法吗?
答案 0 :(得分:0)
如果你想天真地结合字母,那么这是一回事。但是你似乎暗示你想生成有效的单词,这是一个完全不同的任务。
基本步骤包括:
决定您要提取的字词的来源
为元音和辅音标记所有这些单词
写一种访问它们的方法/查询它们
我认为在浏览器中执行所有这些客户端都是一个坏主意,考虑到任何规模的字典都将占用少量无足轻重的资源。我建议你的JS向服务器发送请求,该服务器提供该请求,然后用AJAX之类的方式发回结果。
然后你可以在服务器端做很多事情,虽然我亲自使用NLTK语言任务取得了巨大的成功,这可能是一个可以开始的地方。
修改强>
您的问题更加明确。假设你有一系列元音,vowels
和辅音,consonants
,也许是这样的:
var results = []
function getResult(refString, currentString){
if(currentString === undefined){
currentString = "";
}
if(refString.length === 0){
return currentString;
}else {
if(refString[0] === 'C'){
for(var i in consonants){
results.push(getResult(refString.slice(1),currentString + consonants[i]));
}
} else if (refString[0] === 'V'){
for(var i in vowels){
results.push(getResult(refString.slice(1),currentString + vowels[i]));
}
}
}
}