The following script is a random first and last name generator that works perfectly. The problem is that it randomly tells me that 'str' is not defined.
Can someone explain to me what is happening and how to fix it?
function capFirst(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function generateName(sexo){
let hombre = ["antonio","jose","manuel","francisco","david","juan","javier","daniel"];
let mujer = ["maria carmen","maria","carmen","josefa","ana maria","isabel","maria pilar","maria dolores","laura","maria teresa","ana","cristina"];
let apellidos = ["garcia","gonzalez","rodriguez","fernandez","lopez","martinez","sanchez","perez","gomez","martin","jimenez","ruiz","hernandez","diaz","moreno","muñoz","alvarez","romero","alonso","gutierrez","navarro","torres","dominguez","vazquez","ramos","gil","ramirez","serrano","blanco","molina","morales","suarez","ortega","delgado","castro","ortiz","rubio","marin","sanz","nuñez","iglesias","medina","garrido","cortes","castillo","santos","lozano","guerrero","cano","prieto","mendez","cruz","calvo","gallego","herrera","marquez","leon","vidal","peña","flores","cabrera","campos","vega","fuentes","carrasco","diez","reyes","caballero","nieto","aguilar","pascual","santana","herrero","montero","lorenzo","hidalgo","gimenez","ibañez","ferrer","duran","santiago","benitez","vargas","mora","vicente","arias","carmona","crespo","roman","pastor","soto","saez","velasco","moya","soler","parra","esteban","bravo","gallardo","rojas"]
let nombre;
if (sexo == 'h')
nombre = capFirst(hombre[getRandomInt(0, hombre.length + 1)]);
else if (sexo == 'm')
nombre = capFirst(mujer[getRandomInt(0, mujer.length + 1)]);
else {
if (getRandomInt(0,2) == 1)
nombre = capFirst(hombre[getRandomInt(0, hombre.length + 1)]);
else
nombre = capFirst(mujer[getRandomInt(0, mujer.length + 1)]);
}
nombre += ' '+capFirst(apellidos[getRandomInt(0, apellidos.length + 1)])+ ' ' + capFirst(apellidos[getRandomInt(0, apellidos.length + 1)]);
return nombre;
}
for (let i = 0; i <= 100; i++) {
console.log(i+': '+generateName());
}