Skip to content

Instantly share code, notes, and snippets.

@ajschlosser
Created February 23, 2015 17:38
Show Gist options
  • Save ajschlosser/b52540346bda4228bf4e to your computer and use it in GitHub Desktop.
Save ajschlosser/b52540346bda4228bf4e to your computer and use it in GitHub Desktop.
Generates a random, generic, US-style address.
function generateAddress (obj) {
var odds = Math.floor(Math.random() * 999) + 1,
multiplier = '',
streetLength = Math.floor(Math.random() * 5 + 1),
streetNumber = '',
apartmentTypes = ['Unit', 'Apt.', 'Suite'],
apartmentLetters = ['A','B','C','D','E','F','G'],
apartmentLetter = '',
apartmentType = '',
apartmentNumber = '',
streetTypes = ['St.','Street','Rd.','Road','Circle','Cir.','Way','Dr.','Drive','Square','Sq.','Avenue','Ave.','Boulevard','Blvd.','Lane','Ln.'],
streetType = streetTypes[Math.floor(Math.random() * (streetTypes.length - 1))],
streetNames = ['Main','High','Low','Center','Broad','School','Front','Church','Temple','Hill','River','Brook','Forest','Field','Evergreen','Pine','Oak','Maple','Rose','Garden','Washington','Adams','Jefferson','Lincoln','Grant','Taft','Roosevelt','Truman','Eisenhower','Kennedy','Green','Park','Redwood','Hudson','Charles','Lake','Pond','Middle','New','Apple','Orange','Grove','Market','First','1st','Second','2nd','Third','3rd','Fourth','4th','Fifth','5th','Sixth','6th','A','B','C','D','E','F','Newtown','Middletown','Oldtown','Village','Commonwealth','State'],
streetName = streetNames[Math.floor(Math.random() * (streetNames.length - 1))];
for (var i = streetLength; i != 0; i--) {
multiplier += '9';
}
streetNumber = Math.floor(Math.random() * parseInt(multiplier)) + 1;
if (odds > 700) {
apartmentNumber = Math.floor(Math.random() * 99) + 1;
apartmentType = apartmentTypes[Math.floor(Math.random() * (apartmentTypes.length-1))];
}
if (odds > 850) {
apartmentLetter = apartmentLetters[Math.floor(Math.random() * (apartmentLetters.length - 1))];
}
obj.street1 = streetNumber + ' ' + streetName + ' ' + streetType;
if (apartmentNumber != '') {
obj.street2 = apartmentType + ' ' + apartmentNumber + apartmentLetter;
}
return obj;
}
var obj = {};
obj = generateAddress(obj);
console.log(obj);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment