Skip to content

Instantly share code, notes, and snippets.

@bignimbus
Last active August 29, 2015 14:01
Show Gist options
  • Save bignimbus/66c09a12c38e4531eb5c to your computer and use it in GitHub Desktop.
Save bignimbus/66c09a12c38e4531eb5c to your computer and use it in GitHub Desktop.
(unfinished) A random first name generator. Just for fun!
var
vowels = ['a', 'e', 'i', 'o', 'u', 'y'],
consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'],
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
function name (nameLength, numberOfNames) {
var names = [];
if (nameLength > 14) return 'too long!';
if (numberOfNames > 100 || numberOfNames < 0 || typeof numberOfNames !== 'number') numberOfNames = 1;
var
myName = '',
random = 0;
for (var a = 0; a < numberOfNames; a++){
myName = '';
for (var n = 0; n < nameLength; n++){
switch (true){
case n < 2:
// add any letter
random = Math.floor(Math.random() * (25));
myName += letters[random];
break;
case n >= 2:
// avoid 3 vowels or 3 consonants in a row
// if (isVowel(myName[n-1]) && isVowel(myName[n-2]))
if (isVowel(myName[n-1])) {
// add consonant
random = Math.floor(Math.random() * (consonants.length - 1));
myName += consonants[random];
}
//else if (!isVowel(myName[n-1]) && !isVowel(myName[n-2]))
else if (!isVowel(myName[n-1])) {
// add vowel
random = Math.floor(Math.random() * (vowels.length - 1));
myName += vowels[random];
}
else {
random = Math.floor(Math.random() * (letters.length - 1));
myName += letters[random];
}
break;
}
names.push(myName.charAt(0).toUpperCase() + myName.slice(1));
}
}
return names;
}
var isVowel = function (letter){
for (var l in vowels){
if (letter === vowels[l]) return true;
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment